16
LOGO TRATAMENTO DE EXCEÇÕES

Tratamento de exceções java

Embed Size (px)

DESCRIPTION

Como tratar exceções em Java.

Citation preview

Page 1: Tratamento de exceções   java

LOGO

TRATAMENTO DE EXCEÇÕES

Page 2: Tratamento de exceções   java

TRATAMENTO DE EXCEÇÕES

EQUIPE:

•Raul Vasconcelos•Antonio Bessone•Lawson Cintra

Page 3: Tratamento de exceções   java

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.

Page 4: Tratamento de exceções   java

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");

 }}

Page 5: Tratamento de exceções   java

O que ocorre quando digitamos “0”?

Page 6: Tratamento de exceções   java

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:

Page 7: Tratamento de exceções   java
Page 8: Tratamento de exceções   java
Page 9: Tratamento de exceções   java

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

Page 10: Tratamento de exceções   java

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{}

Page 11: Tratamento de exceções   java

Combinações Inválidas (não compila)

try{} — –

catch{} finally{} —

try{} finally{} catch{}

Page 12: Tratamento de exceções   java

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.

Page 13: Tratamento de exceções   java

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");

}}

Page 14: Tratamento de exceções   java

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.

Page 15: Tratamento de exceções   java

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");}

}

Page 16: Tratamento de exceções   java

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