Download - Tratamento de exceções java
LOGO
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 - CATCHExemplo: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