Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Tratamento de Exceçoes
● Hierarquia das Exceções em Java
● Bloco Finaly
● Liberando a pilha e obtendo informações de 
objetos de exceção
● Exceções encadeadas
 
● Todas as classes de Exceção do java herdam 
direta ou indiretamente da classe Exception
● A figura mostra uma pequena parte da 
hierarquia de herança da classe Throwable 
(uma subclasse de object), que é a superclasse 
da classe Exception
 
● Exception: representam situações 
excepcionais que podem ocorrer em um 
programa java e que podem ser capturadas 
pelo aplicativo.
● Error: representam situação anormais que 
acontecem na JVM. (Geralmente os aplicativos 
não podem se recuperar dos erros).
 
Hierarquia das Exceções em Java 
 
● Exception: representam situações 
excepcionais que podem ocorrer em um 
programa java e que podem ser capturadas 
pelo aplicativo.
● Error: representam situação anormais que 
acontecem na JVM. (Geralmente os aplicativos 
não podem se recuperar dos erros).
 
● Você pode visualizar a documentação Throwable 
em:
 docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html
 
Exceções verificadas x Exceções 
não verificadas
 Exceções não verificadas 
 RuntimeExceptions são exceções não 
verificadas,todos os tipos de exceção que são 
subclasses diretas ou indiretas da classe 
RuntimeException (pacote java.lang) são 
exceções não verificadas. Elas geralmente são 
causadas por defeitos no código do seu 
programa.
 
Exceções verificadas x Exceções 
não verificadas
 Exceções verificadas
● Todas as classes que são herdadas da classe 
Exception, mas não direta ou indiretamente da 
classe RuntimeException, são consideradas 
exceções verificadas. Essas exceções 
geralmente são causadas por condições que 
não estão sob o controle do programa
 
Bloco finally 
 Programas que obtêm certos recursos devem 
retorná-los ao sistema para evitar os assim 
chamados vazamentos de recurso.
 
Bloco finally
Em linguagens de programação como C e C++, o tipo mais 
comum de vazamento de recurso é um vazamento de memória. 
O Java realiza coleta automática de lixo de memória não mais 
utilizada por programas, evitando assim a maioria dos vazamentos 
de memória. Entretanto, outros tipos de vazamentos de recurso 
podem ocorrer. Por exemplo, arquivos, conexões de banco de 
dados e conexões de rede que não são fechadas adequadamente 
depois que não são mais necessárias talvez não estejam 
disponíveis para uso em outros programas.
 
Bloco finally
O bloco finally (que consiste na palavra-chave 
finally, seguida pelo código entre chaves), às 
vezes referido como a cláusula finally, é 
opcional. Se estiver presente, ele é colocado 
depois do último bloco catch. Se não houver 
blocos catch, o bloco finally, se presente, segue 
imediatamente o bloco try.
 
Bloco finally
● O bloco finally sempre será executado, caso a 
exceção seja executada ou não.
● O caso em que o bloco finally não executará é 
se o aplicativo sair precocemente do bloco try 
chamando o método System.exit.
 
Bloco finally
 
Bloco finally
 
Lançando exceções com a 
instrução throw
● A instrução na linha 26 é conhecida como 
uma instrução throw ela é executada para 
indicar uma exceção que ocorreu.
● Você mesmo pode lançar exceções usando 
a instrução throw.
Uma instrução throw especifica um objeto a 
ser lançado. O operando de um
throw pode ser de qualquer classe derivada 
da classe Throwable.
 
Relançando exceções com a 
instrução throw
● O relançamento da exceção é visto na linha 32
 
Resumindo
● Um método deve informar que exceções ele pode disparar (throw) cláusula 
throws na definição do método
● Um bloco que tenta (try) chamar um método que pode disparar uma exceção 
deve tratá-la
● Chamada normal de um método, mas que deve estar em um bloco try{...} 
catch {...}
● Uma exceção é um objeto que deve ser capturado (catch) É nesse bloco que 
a exceção deve ser tratada
● Um trecho de código pode ser executado sempre
bloco finally
 
Liberando a pilha e obtendo informações de um objeto de 
Exceção
 
Liberando a pilha e obtendo informações de um objeto de 
Exceção
 
Exceções Encadeadas
 
Exceções Encadeadas
 
Exercícios de revisão
1) Por que as exceções são particularmente adequadas para lidar com erros produzidos por 
métodos de classes na Java API?
2) O que é um “vazamento de recurso”?
3) Se nenhuma exceção é lançada em um bloco try, onde o controle prossegue quando o 
bloco try completa a execução?
4) Dê uma vantagem fundamental de utilizar catch(Exception nomeDaExceção).
5) Um aplicativo convencional deve capturar objetos Error? Explique.
6) O que acontece se nenhuma rotina de tratamento catch corresponder ao tipo de um objeto 
lançado?
7) O que acontece se vários blocos catch correspondem ao tipo do objeto lançado?
8) Por que um programador especificaria um tipo de superclasse como o tipo em um bloco 
catch?
9) Qual é a razão chave para utilizar blocos finally?
10)O que acontece quando um bloco catch lança uma Exception?
11) O que a instrução throw referênciaDaExceção faz em um bloco catch?
12) O que acontece com uma referência local em um bloco try quando esse bloco lança uma 
Exception?
 
Exercício
 
Exercício
 
Exercício
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25

Mais conteúdos dessa disciplina