TRATAMENTO DE EXCEÇÕES
TRATAMENTO DE EXCEÇÕES EQUIPE: Raul Vasconcelos Antonio Bessone Lawson Cintra
O que Tratamento de Exceção permite? Detecção e tratamento de ERROS  que podem ocorrer durante a execução do programa. Exemplo: Programa que captura um número inteiro do teclado para dividir por 1.000.
EXEMPLO import  java.io.BufferedReader; import  java.io.IOException; import  java.io.InputStreamReader; public   class  execeção { public   static   void  main(String[] arg)  throws  IOException { BufferedReader teclado =  new  BufferedReader( new  InputStreamReader(System. in )); System. out .print("Digite um numero: "); int  num = Integer. parseInt (teclado.readLine()); int  invm = 1000 / num; System. out .println("1000/" + num + " = " + invm); System. out .println("fim de programa");   } }
O que ocorre quando digitamos “0”?
Como os erros são caracterizados (indicados)? Os erros são identificados por objeto de classes específicas durante a execução dos programas. Existem dois tipos de classes, a classe Error (Erros Estruturais, como mau funcionamento da máquina virtual) e a classe Exception (Erros que podem ser tratados dentro do projeto), que servem de superclasses para as demais. Ambas são subclasses da classe Throwable. Veja figura e a tabela abaixo:
 
 
Tipos comuns de erros de execução? Problema Classe que identifica o tipo de erro. Índice de uma lista (Array) fora do intervalo permitido.  IndexOutOfboundsException Problemas em operações aritméticas, tais como: Divisões por zero. ArithmeticException Uso de referência que são a ponta para nenhum objeto. IOException
Como é feito o tratamento de erros? Através do comando  TRY  e suas cláusulas  catch  e  finally. Combinações válidas: Combinações válidas: try{} catch{} try{} finally{} try{} catch{} finally{}
Combinações Inválidas (não compila) try{} — – catch{} finally{} — try{} finally{} catch{}
TRATAMENTO DE EXCEÇÕES Devemos inserir dentro do bloco do TRY as instruções que queremos monitorar para evitar as execeções. TRY - CATCH Exemplo: Programa que captura um número inteiro do teclado para dividir por 1.000.
TRATAMENTO DE EXCEÇÕES import  java.io.*; public   class  C16Exemplo6 { public   static   void  main(String[] arg)  throws  IOException { BufferedReader teclado =  new  BufferedReader( new  InputStreamReader(System. in )); System. out .print("Digite um numero: "); try  { int  num = Integer. parseInt (teclado.readLine()); int  invm = 1000 / num; System. out .println("1000/" + num + " = " + invm); }  catch  (ArithmeticException e) { System. out .println("nada a calcular"); }  catch  (NumberFormatException e) { System. out .println("foi digitado um valor não inteiro"); } System. out .println("fim de programa"); } }
TRY – FINALLY O comando  try  pode ter apenas uma cláusula-finally, e se houver deve ser a sua última cláusula. Ela só faz diferença nas situações em que o processamento é interrompido pela ocorrência de erros não-tratados por nenhuma cláusula-catch.  Exemplo: Programa que divide dois números digitados pelo usuário.
TRY – FINALLY import  java.io.*; public   class  C16Exemplo11 { public   static   void  main(String[] args) { int  num = 0, den = 0; BufferedReader teclado =  new  BufferedReader( new  InputStreamReader(System. in )); System. out .println("Digite dois números seguidos da tecla ENTER:"); try  { num = Integer. parseInt  (teclado.readLine()); den = Integer. parseInt (teclado.readLine()); System. out .println (num+"/"+den+" = "+ (num/den)); } catch  (NumberFormatException e){ System. out .println ("Erro de formato."); } catch  (IOException e) { System. out .println ("Erro de E/S."); } finally  { System. out .println("Saindo do Bloco \"Try\".");} System. out .println("Fim do programa"); } }
REFERENCIAS Pinheiro, Francisco A . C. - Fundamentos da computação e orientação a objetos usando Java  - Rio de Janeiro: LTC 2006. http://blog.camilolopes.com.br/tratamento-de-excecoes-em-java/ http://www.if.ufrgs.br/~betz/jaulas/aula8o.htm

Tratamento de exceções java

  • 1.
  • 2.
    TRATAMENTO DE EXCEÇÕESEQUIPE: Raul Vasconcelos Antonio Bessone Lawson Cintra
  • 3.
    O que Tratamentode Exceção permite? Detecção e tratamento de ERROS que podem ocorrer durante a execução do programa. Exemplo: Programa que captura um número inteiro do teclado para dividir por 1.000.
  • 4.
    EXEMPLO import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class execeção { public static void main(String[] arg) throws IOException { BufferedReader teclado = new BufferedReader( new InputStreamReader(System. in )); System. out .print("Digite um numero: "); int num = Integer. parseInt (teclado.readLine()); int invm = 1000 / num; System. out .println("1000/" + num + " = " + invm); System. out .println("fim de programa");   } }
  • 5.
    O que ocorrequando digitamos “0”?
  • 6.
    Como os errossão caracterizados (indicados)? Os erros são identificados por objeto de classes específicas durante a execução dos programas. Existem dois tipos de classes, a classe Error (Erros Estruturais, como mau funcionamento da máquina virtual) e a classe Exception (Erros que podem ser tratados dentro do projeto), que servem de superclasses para as demais. Ambas são subclasses da classe Throwable. Veja figura e a tabela abaixo:
  • 7.
  • 8.
  • 9.
    Tipos comuns deerros de execução? Problema Classe que identifica o tipo de erro. Índice de uma lista (Array) fora do intervalo permitido. IndexOutOfboundsException Problemas em operações aritméticas, tais como: Divisões por zero. ArithmeticException Uso de referência que são a ponta para nenhum objeto. IOException
  • 10.
    Como é feitoo tratamento de erros? Através do comando TRY e suas cláusulas catch e finally. Combinações válidas: Combinações válidas: try{} catch{} try{} finally{} try{} catch{} finally{}
  • 11.
    Combinações Inválidas (nãocompila) try{} — – catch{} finally{} — try{} finally{} catch{}
  • 12.
    TRATAMENTO DE EXCEÇÕESDevemos inserir dentro do bloco do TRY as instruções que queremos monitorar para evitar as execeções. TRY - CATCH Exemplo: Programa que captura um número inteiro do teclado para dividir por 1.000.
  • 13.
    TRATAMENTO DE EXCEÇÕESimport java.io.*; public class C16Exemplo6 { public static void main(String[] arg) throws IOException { BufferedReader teclado = new BufferedReader( new InputStreamReader(System. in )); System. out .print("Digite um numero: "); try { int num = Integer. parseInt (teclado.readLine()); int invm = 1000 / num; System. out .println("1000/" + num + " = " + invm); } catch (ArithmeticException e) { System. out .println("nada a calcular"); } catch (NumberFormatException e) { System. out .println("foi digitado um valor não inteiro"); } System. out .println("fim de programa"); } }
  • 14.
    TRY – FINALLYO comando try pode ter apenas uma cláusula-finally, e se houver deve ser a sua última cláusula. Ela só faz diferença nas situações em que o processamento é interrompido pela ocorrência de erros não-tratados por nenhuma cláusula-catch. Exemplo: Programa que divide dois números digitados pelo usuário.
  • 15.
    TRY – FINALLYimport java.io.*; public class C16Exemplo11 { public static void main(String[] args) { int num = 0, den = 0; BufferedReader teclado = new BufferedReader( new InputStreamReader(System. in )); System. out .println("Digite dois números seguidos da tecla ENTER:"); try { num = Integer. parseInt (teclado.readLine()); den = Integer. parseInt (teclado.readLine()); System. out .println (num+"/"+den+" = "+ (num/den)); } catch (NumberFormatException e){ System. out .println ("Erro de formato."); } catch (IOException e) { System. out .println ("Erro de E/S."); } finally { System. out .println("Saindo do Bloco \"Try\".");} System. out .println("Fim do programa"); } }
  • 16.
    REFERENCIAS Pinheiro, FranciscoA . C. - Fundamentos da computação e orientação a objetos usando Java - Rio de Janeiro: LTC 2006. http://blog.camilolopes.com.br/tratamento-de-excecoes-em-java/ http://www.if.ufrgs.br/~betz/jaulas/aula8o.htm