Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
TRATAMENTO DE EXCEÇÕ ES<br />
Tratamento de exceções em <strong>Java</strong><br />
O tratamento de exceções em <strong>Java</strong> segue o mesmo estilo de C++, visando um código mais tolerante a<br />
falhas. Existem três comandos básicos que permitem esse tratamento de exceções: try, catch e finally.<br />
Esses comandos são usados em conjunto, suprindo o programador de recursos que garantam o<br />
desenvolvimento de códigos robustos:<br />
?? try: é o bloco de comandos que são passíveis de gerarem uma exceção. Quando o programador<br />
sabe que um determinado conjunto de instruções pode gerar algum tipo de exceção, ele agrega<br />
esses comandos dentro de um bloco try. O código contido dentro de um bloco try é chamado de<br />
código protegido.<br />
?? catch: é o bloco de comandos alternativos ao try, ou seja, se os comandos do bloco try gerarem<br />
uma exceção então os comandos do bloco catch serão executados no lugar deles. O bloco catch<br />
é opcional, mas normalmente é implementado junto a um bloco try.<br />
?? finally: é um comando utilizado para delimitar um grupo de instruções que será sempre<br />
executada ao final de um bloco try-catch, independente de qual dos blocos anteriores foi<br />
processado pela máquina virtual.<br />
A lógica dos blocos acima descritos é simples:<br />
1. Tenta executar os comandos do bloco try<br />
2. Se os comandos do try geraram uma exceção, então executa os comandos do bloco catch. Um<br />
bloco de comandos catch sempre deve seguir um bloco de comandos try, e o programador deve<br />
ter o cuidado de garantir que o bloco catch não irá gerar uma exceção.<br />
3. Independente das exceções geradas na execução dos blocos try ou catch, os comandos do bloco<br />
finally serão executados.<br />
public void relatorio(int indice)<br />
{<br />
// Tratamento de exceções<br />
try<br />
{<br />
// Tenta executar esse comando<br />
System.out.println(alunos[indice]);<br />
}<br />
catch(ArrayIndexOutOfBoundsException erro)<br />
{<br />
// Se houver algum erro no bloco anterior,<br />
// esse comando será executado<br />
System.out.println("aluno inexistente");<br />
}<br />
catch(Exception erro)<br />
{<br />
// Pode-se usar um catch para cada tipo de erro<br />
// possível no bloco try<br />
System.out.println("exceção inesperada");<br />
}<br />
finally<br />
{<br />
// Esse comando será executado sempre<br />
System.out.println("executou finally");<br />
}<br />
}<br />
75