29
Tratamento de Exceções Antonio Álvaro Oliveira da Silva Wallysson Ferreira Araruna Instituto Federal de Educação, Ciência e Tecnologia - IFCE campus Crato Seminário De POO I Professor: Robson Feitosa

Tratamento de exceções

Embed Size (px)

Citation preview

Page 1: Tratamento de exceções

Tratamento de

Exceções

Antonio Álvaro Oliveira da Silva

Wallysson Ferreira Araruna

Instituto Federal de Educação, Ciência e Tecnologia - IFCE campus Crato

Seminário De POO I

Professor: Robson Feitosa

Page 2: Tratamento de exceções

Introdução

Seminário de POO I - Tratamento de Exceções 2

O que é Exceções?

São eventos que ocorrem durante a execução de

um programa e quebram o fluxo normal de

execução do Programa.

Indicam a ocorrência de erros ou condições

excepcionais no programa.

Page 3: Tratamento de exceções

Algumas Exceções

Esgotamento de Memória;

Índice de Array Fora dos Limites;

Estouro Aritmético;

Erros de Manipulação de Arquivos;

Erros na Comunicação com Banco de Dados;

Divisão por Zero;

Parâmetros de Métodos Inválidos etc.

Seminário de POO I - Tratamento de Exceções 3

Page 4: Tratamento de exceções

Exemplo Sem

Tratamento de Exceções

Page 5: Tratamento de exceções

5 Seminário de POO I - Tratamento de Exceções

Define um bloco de tratamento de exceção

Page 6: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 6

Page 7: Tratamento de exceções

Palavras Reservadas em Java

try, catch e finally

Define um bloco de tratamento de exceção.

throws

Declara que um método pode lançar uma exceção ou mais

exceções

throw

Lança uma exceção

Seminário de POO I - Tratamento de Exceções 7

Modelo de Tratamento

Page 8: Tratamento de exceções

try {

...

} catch (Excecao1 e1) {

...

} catch (Excecao2 e2) {

...

}

Seminário de POO I - Tratamento de Exceções 8

Bloco try / catch

Page 9: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 9

Page 10: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 10

Page 11: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 11

Page 12: Tratamento de exceções

Quando Utilizar Tratamento de Exceções

E utilizado para processar erros síncronos.

Não é projetado para processar problemas

associados com eventos assíncronos.

Para tornar um programa mais robusto e

tolerantes a falhas.

Seminário de POO I - Tratamento de Exceções 12

Page 13: Tratamento de exceções

Hierarquia de Exceção

Seminário de POO I - Tratamento de Exceções 13

Page 14: Tratamento de exceções

ArrayIndexOutOfBoundsException— é feita uma tentativa de

acessar um elemento depois do final de um array.

ClassCastException— ocorre uma tentativa de fazer uma coerção

em um objeto que não tem um relacionamento é um com o tipo

especificado no operador de coerção.

NullPointerException— quando uma referência null é utilizada

onde um objeto é esperado.

ArithmeticException— pode surgir a partir de diferentes

problemas na aritmética.

InputMismatchException- ocorre quando o método Scanner

nextInt recebe uma string que não representa um inteiro válido.

14 Seminário de POO I - Tratamento de Exceções

Page 15: Tratamento de exceções

Exceções Verificadas versus Não

Verificadas

O compilador Java impõe um Requisito “capture ou declare” ás

exceções verificadas;

O tipo da exceção determina se a exceção é verificada ou não;

Todas as subclasses da classe RuntimeException são exceções não

verificadas;

Todas as classes que herdam da classe Exception menos a

RuntimeException são exceções verificadas;

As classes que herdam da classe Error são consideradas não

verificadas.

Seminário de POO I - Tratamento de Exceções 15

Page 16: Tratamento de exceções

Bloco finally

É opcional, e é

colocado após do

ultimo bloco

catch.

Seminário de POO I - Tratamento de Exceções 16

Page 17: Tratamento de exceções

Lançamento de Exceções com a

Instrução throw

E utilizada para indicar que uma exceção foi lançada.

Assim exceções lançadas indica para os aplicativos clientes que

ocorreu um erro.

Seminário de POO I - Tratamento de Exceções 17

Page 18: Tratamento de exceções

Relançando Exceções

As exceções são relançadas quando um

bloco catch,ao receber uma

exceção,decide que não pode processar

essa exceção ou que só pode processá-la

parcialmente.

Seminário de POO I - Tratamento de Exceções 18

Page 19: Tratamento de exceções

Desempilhamento de Pilha

Quando uma exceção é lançada mas não

capturada em um escopo em particular, a

pilha de chamada de método é

“desempilhada” e é feita uma tentativa de

capturar (catch) a exceção no próximo bloco

try externo.

Seminário de POO I - Tratamento de Exceções 19

Page 20: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 20

O Tipo que está sendo

capturado

RuntimeException não

corresponde ao tipo

lançado,pois ele não é

superclasse e sim subclasse

da classe Exception.

Page 21: Tratamento de exceções

printStackTrace,getStackTrace e

getMessage

As exceções derivam da classe Throwable

printStackTrace - Envia para o fluxo de erro padrão o rastreamento da

pilha.É útil no processo de teste e depuração.

getStackTrace - Recupera as informações sobre o rastreamento da pilha

que podem ser impressos por printStackTrace.

getMessage – Retorna a string descritiva armazenada em uma exceção.

OBS: Nunca ignore uma exceção que capturou.

Seminário de POO I - Tratamento de Exceções 21

Page 22: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 22

Page 23: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 23

Page 24: Tratamento de exceções

Exceções Encadeadas

Permitem a um objeto exceção manter

informações de rastreamento de pilha completas

a partir da exceção original.

Utiliza o construtor Exception com dois

argumentos, o segundo argumento representa a

exceção que era a causa original do problema.

Seminário de POO I - Tratamento de Exceções 24

Page 25: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 25

Page 26: Tratamento de exceções

Seminário de POO I - Tratamento de Exceções 26

Page 27: Tratamento de exceções

Referencias

Deitel,Paul;Deitel,Harvey. Java Como Programar,8ª edição,editora Pearson

Prentice Hall 2010.

Seminário de POO I - Tratamento de Exceções 27

Page 28: Tratamento de exceções

28 Seminário de POO I - Tratamento de Exceções

Page 29: Tratamento de exceções

OBRIGADO PELA ATENÇÃO

Seminário de POO I - Tratamento de Exceções 29