Download - 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
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.
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
Exemplo Sem
Tratamento de Exceções
5 Seminário de POO I - Tratamento de Exceções
Define um bloco de tratamento de exceção
Seminário de POO I - Tratamento de Exceções 6
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
try {
...
} catch (Excecao1 e1) {
...
} catch (Excecao2 e2) {
...
}
Seminário de POO I - Tratamento de Exceções 8
Bloco try / catch
Seminário de POO I - Tratamento de Exceções 9
Seminário de POO I - Tratamento de Exceções 10
Seminário de POO I - Tratamento de Exceções 11
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
Hierarquia de Exceção
Seminário de POO I - Tratamento de Exceções 13
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
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
Bloco finally
É opcional, e é
colocado após do
ultimo bloco
catch.
Seminário de POO I - Tratamento de Exceções 16
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
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
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
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.
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
Seminário de POO I - Tratamento de Exceções 22
Seminário de POO I - Tratamento de Exceções 23
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
Seminário de POO I - Tratamento de Exceções 25
Seminário de POO I - Tratamento de Exceções 26
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
28 Seminário de POO I - Tratamento de Exceções
OBRIGADO PELA ATENÇÃO
Seminário de POO I - Tratamento de Exceções 29