You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TRATAMENTO DE EXCEÇÕ ES<br />
as exceções possíveis quando o correto comportamento de um programa depende do usuário,<br />
mas tratar o maior número possível dessas exceções é uma obrigação do bom programador.<br />
se os métodos de um programa tratarem todas as exceções possíveis, dizemos que o programa é<br />
robusto. Evidentemente, nem sempre é possível prevenir todas as exceções, mas o grau de robusteza de<br />
um código tem uma relação direta com a qualidade desse código. O programador deve sempre<br />
programar pensando em "quanto mais robusto melhor".<br />
Tratamento pendente de exceções<br />
Caso um método possa gerar uma exceção, esse método deve deixar claro o tipo de ação que deve ser<br />
tomada para contornar essa exceção.<br />
Existem duas formas de fazer isso: um bloco try-catch, conforme visto anteriormente ou então a simples<br />
sinalização das exceções, deixando o seu tratamento para fora do trecho de código que gerou essa<br />
exceção.<br />
Para não misturar o tratamento de exceções com a lógica de um programa, uma técnica muito utilizada é<br />
a declaração de métodos com exceções pendentes, ou seja, cujo tratamento deverá ser feito pelo<br />
programa que chamar esse método.<br />
Em <strong>Java</strong>, essa pendência do tratamento de uma exceção é definida pela palavra reservada throws:<br />
// A palavra reservada throws é seguida pela lista de exceções que podem<br />
// ocorrer na execução do código do método. Esse método só poderá ser<br />
// chamado de dentro de um bloco try-catch, pois a pendência deverá ser<br />
// tratada no código que está chamando esse método.<br />
public void relatorio(int indice) throws ArrayIndexOutOfBoundsException<br />
{<br />
// A vantagem do tratamento de exceções pendentes é que o código dos<br />
// métodos fica restrito à lógica do programa.<br />
System.out.println(alunos[indice]);<br />
}<br />
Exceções implementadas pelo programador<br />
Como as exceções em <strong>Java</strong> são instâncias de alguma subclasse de Throwable, é possível implementar<br />
outras classes estendidas de Throwable ou de uma de suas subclasses. Essas subclasses<br />
implementadas pelo programador serão igualmente exceções.<br />
Tal qual vimos na aula 11, usaremos a palavra reservada extends para implementarmos novas exceções:<br />
public class AlunoInexistente extends Exception<br />
{<br />
// Esse método sobrecarrega o método homônimo da classe Exception<br />
public String getMessage()<br />
{<br />
return "indice do aluno não existe";<br />
}<br />
}<br />
77