Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.
Post on 07-Apr-2016
232 Views
Preview:
Transcript
Tratamento de Exceções
Roteiro
• O que são exceções?• Quando usar• Capturando Exceções• Exemplos
O que são exceções?
• Exceção é uma indicação de um problema que ocorreu durante a execução
• Exceção significa que este não ocorre frequentemente
• Tratamento de exceções– É a capacidade de um programa continuar
executando, ao invés de fechar, depois da ocorrência de um problema
– Robustez – a programas críticos
Visão geral do tratamento de erros
• Programas testam condições para determinar como a execução do programa deve prosseguir
Realiza uma tarefaSe a tarefa anterior não tiver sido executada corretamente
realize processamento do erroRealize a próxima tarefaSe a tarefa anterior não tiver sido executada corretamente
realize processamento do erro....
ExemplosDivisão por zero sem Exceção
Quando usar
• Projetados para processar erros síncronos que ocorrem quando uma instrução é executada
• Exemplos comuns– Índices fora do intervalo de um array– Estouro aritmético– Divisão por zero– Parâmetros inválidos de método– Interrupção de thread– Alocação de memória mal sucedida
Quando usar
• Não são projetados para processar erros assíncronos, que ocorrem paralelamente com o fluxo de controle do programa e independente dele
• Exemplos comuns– E/S do disco– Chegada de mensagens da rede– Cliques de mouse– Pressionamento de teclas
Capturando Exceções
• Estrutura (try - catch)
try {.....} catch (....) {.....}
Capturando Exceções
• Estrutura (try - catch)– O bloco de comando TRY• No exemplo as entradas de dados pelo teclado utilizam
o scanner.nextInt()• Esta por sua vez lança exceções do tipo
InputMissMatchException• Quando o valor lido não é do tipo inteiro
Capturando Exceções
• Estrutura (try - catch)– O bloco de comando TRY• A divisão não ocorre exatamente no bloco try• É feita uma chamada ao método quotient• E tal método lança uma exceção do tipo
ArithmeticException, quando a divisão é feita por zero– O bloco catch• Captura e trata as exceções
Capturando Exceções
• Bloco finally– Exceções não capturadas• São aquelas que não há blocos catch associados• No caso de programação multithread, uma exceção não
capturada finalizará apenas a thread que ocorreu a exceção
• Cláusula throws– Especifica as exceções que o método pode lançar
Capturando Exceções
Exemplos 2Divisão por zero com Exceção
Exemplos 2Lançando Exceções
Hierarquia de Classes
Exemplos 2Rastreamento de Exceções
Exemplos 2Encadeamento de Exceções
top related