Top Banner
Tratamento de Exceção em Java Marques Henrique Amaro Natasha Silveira Pinheiro Disciplina de Projeto Detalhado de Software Prof. Camilo Camilo Almendra
12

Tratamento de exceção em java

Jul 18, 2015

Download

Education

Marques Amaro
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tratamento de exceção em java

Tratamento de Exceção em Java

Marques Henrique Amaro

Natasha Silveira Pinheiro

Disciplina de Projeto Detalhado de Software Prof. Camilo Camilo Almendra

Page 2: Tratamento de exceção em java

Introdução

• Exceção

• Qualquer evento não usual que é detectável por hardware ou por software que possam requerer um processamento especial.

• Tratamento de Exceção

• Processamento especial que pode ser requerido quando uma exceção é detectada.

Page 3: Tratamento de exceção em java

Motivação

• Como avisar aquele que chamou o método de que ele não conseguiu fazer aquilo que deveria?

• Um método pode detectar uma falha, mas não estar apto a resolver sua causa, devendo repassar essa função a quem saiba.

Page 4: Tratamento de exceção em java

Exceções em Java

• A linguagem Java dá suporte ao tratamento de exceções

• Exceções são representadas por classes

• São lançadas pelo comando throw

• São tratadas pela estrutura try-catch-finally

• Um método que lance uma exceção deve declarar isso explicitamente.

• Para umas classe representar uma exceção, ela deve pertencer a uma certa hierarquia. A classe raiz de todas as exceções é java.lang.Throwable.

Page 5: Tratamento de exceção em java

Hierarquia de Exceções

Page 6: Tratamento de exceção em java

Estrutura try-catch-finally

• Try

• É utilizado para indicar um bloco de código que possa ocorrer uma exceção e que a execução pode ser cancelada a qualquer momento e continuar no catch.

• Catch

• É utilizado para manipular as exceções, ou seja, tratar o erro. Deve aparecer após o try.

• Finally

• Será executado depois do bloco try/catch e finaliza a sequência de comandos do sistema. É opcional. É normalmente usado para liberação de recursos.

Page 7: Tratamento de exceção em java

Exemplo

Page 8: Tratamento de exceção em java

Sem Tratamento de Exceção

• A conta precisa avisar que o saldo não é suficiente

• Além disso, precisa tratar o caso em que o valor passado é inválido

Page 9: Tratamento de exceção em java

Com Tratamento de Exceção

• O código ficou mais limpo e mais propício a mudanças

Page 10: Tratamento de exceção em java

Continuando...

• O exemplo usado anteriormente é bom, caso o tratador seja quem o que o chama o método, mas imagine numa aplicação real, onde o fedback do usuário acontece na interface. As exceções checkeds deixariam o código muito acoplado.

• Por exemplo: uma classe A chama uma classe B, que chama uma classe C, que chama saque de conta.

• O que fazer?

• Isso tem nome. São exceções de alto nível, logo devem ser tratadas na camada mais externa da aplicação. Usariamos uma Unchecked Exception.

Page 11: Tratamento de exceção em java

Conclusão

• Tratar exceções não é apenas tratá-las, mas sim tratar no lugar correto e da forma correta.

• O tratamento de exceções, quando feito da forma mais adequada, deixa o código limpo e sem obscurecer a lógica.

Page 12: Tratamento de exceção em java

Referências

• Trabalhando com Exceções em Java. Disponível em: <http://www.devmedia.com.br/trabalhando-com-excecoes-em-java/27601>. Acesso em: 7 nov. 2014

• MARTIN, R. C. Código Limpo: habilidades práticas do Agile Software. Rio de Janeiro: Alta Books, 2011.

• Caelum, Apostila Java e Orientação a Objetos. Disponível em: <http://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros/#11-1-motivacao>. Acesso em: 7 nov. 2014

• AULA 15 – Exceções – IF669, Cin-UFPE. Disponível em: <http://www.youtube.com/watch?v=0123L6skOsM>. Acesso em: 7 nov. 2014