Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

17
Tratamento de Exceções

Transcript of Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Page 1: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Tratamento de Exceções

Page 2: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Roteiro

• O que são exceções?• Quando usar• Capturando Exceções• Exemplos

Page 3: 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

Page 4: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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....

Page 5: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

ExemplosDivisão por zero sem Exceção

Page 6: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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

Page 7: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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

Page 8: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Capturando Exceções

• Estrutura (try - catch)

try {.....} catch (....) {.....}

Page 9: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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

Page 10: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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

Page 11: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

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

Page 12: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Capturando Exceções

Page 13: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Exemplos 2Divisão por zero com Exceção

Page 14: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Exemplos 2Lançando Exceções

Page 15: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Hierarquia de Classes

Page 16: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Exemplos 2Rastreamento de Exceções

Page 17: Tratamento de Exceções. Roteiro O que são exceções? Quando usar Capturando Exceções Exemplos.

Exemplos 2Encadeamento de Exceções