30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!