Tratamento de Exceção em Java Marques Henrique Amaro Natasha Silveira Pinheiro Disciplina de Projeto Detalhado de Software Prof. Camilo Camilo Almendra
Tratamento de Exceo em Java
Marques Henrique Amaro
Natasha Silveira Pinheiro
Disciplina de Projeto Detalhado de Software Prof. Camilo Camilo Almendra
Introduo
Exceo
Qualquer evento no usual que detectvel por hardware ou por software que possam requerer um processamento especial.
Tratamento de Exceo
Processamento especial que pode ser requerido quando uma exceo detectada.
Motivao
Como avisar aquele que chamou o mtodo de que ele no conseguiu fazer aquilo que deveria?
Um mtodo pode detectar uma falha, mas no estar apto a resolver sua causa, devendo repassar essa funo a quem saiba.
Excees em Java
A linguagem Java d suporte ao tratamento de excees
Excees so representadas por classes
So lanadas pelo comando throw
So tratadas pela estrutura try-catch-finally
Um mtodo que lance uma exceo deve declarar isso explicitamente.
Para umas classe representar uma exceo, ela deve pertencer a uma certa hierarquia. A classe raiz de todas as excees java.lang.Throwable.
Hierarquia de Excees
Estrutura try-catch-finally
Try
utilizado para indicar um bloco de cdigo que possa ocorrer uma exceo e que a execuo pode ser cancelada a qualquer momento e continuar no catch.
Catch
utilizado para manipular as excees, ou seja, tratar o erro. Deve aparecer aps o try.
Finally
Ser executado depois do bloco try/catch e finaliza a sequncia de comandos do sistema. opcional. normalmente usado para liberao de recursos.
Exemplo
Sem Tratamento de Exceo
A conta precisa avisar que o saldo no suficiente
Alm disso, precisa tratar o caso em que o valor passado invlido
Com Tratamento de Exceo
O cdigo ficou mais limpo e mais propcio a mudanas
Continuando...
O exemplo usado anteriormente bom, caso o tratador seja quem o que o chama o mtodo, mas imagine numa aplicao real, onde o fedback do usurio acontece na interface. As excees checkeds deixariam o cdigo 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. So excees de alto nvel, logo devem ser tratadas na camada mais externa da aplicao. Usariamos uma Unchecked Exception.
Concluso
Tratar excees no apenas trat-las, mas sim tratar no lugar correto e da forma correta.
O tratamento de excees, quando feito da forma mais adequada, deixa o cdigo limpo e sem obscurecer a lgica.
Referncias
Trabalhando com Excees em Java. Disponvel em: . Acesso em: 7 nov. 2014
MARTIN, R. C. Cdigo Limpo: habilidades prticas do Agile Software. Rio de Janeiro: Alta Books, 2011.
Caelum, Apostila Java e Orientao a Objetos. Disponvel em: . Acesso em: 7 nov. 2014
AULA 15 Excees IF669, Cin-UFPE. Disponvel em: . Acesso em: 7 nov. 2014