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 />

Quando usamos um software, esperamos que ele seja tolerante à falhas – pelo menos às falhas mais<br />

comuns relativas à sua função. Quando um programador identifica uma falha possível de ocorrer<br />

durante a execução de seus programas, ele pode codificar estratégias de tolerância e/ou correção desta<br />

falha, em um processo conhecido como tratamento de exceções.<br />

O que são exceções ?<br />

Uma exceção é um evento ou valor ilegal, porém previsto na modelagem de um sistema. Por exemplo,<br />

quando criamos um programa que pede ao usuário a digitação de um valor inteiro e esse usuário digita<br />

um valor fracionário, dizemos que o valor digitado pelo usuário irá gerar uma exceção. Entretanto, essa<br />

exceção pode, e deve, ser previsto na implementação desse programa.<br />

Diferença entre exceções e erros<br />

A diferença entre exceção e erro é que uma exceção é prevista pelo programador durante a<br />

implementação de um sistema, enquanto o erro é algo inesperado, não tratado e que, na maioria das<br />

vezes, aborta o sistema.<br />

Exceção:<br />

O usuário digitou um valor inválido. (previsível)<br />

Solução: a implementação de um tratamento<br />

para a exceção gerada pela digitação de um<br />

valor inválido.<br />

Erro:<br />

13<br />

O teclado sofreu algum avaria física e parou<br />

de enviar sinais ao computador. O usuário não<br />

pode mais digitar valores com o teclado.<br />

(imprevisível)<br />

Solução: não tem solução, pois um programa<br />

comum de computador não pode reparar um<br />

periférico de um computador – um teclado em<br />

curto, por exemplo. Um erro, caso seja<br />

detectado, geralmente causa o encerramento<br />

do programa que o detectou.<br />

os erros são sinalizados pelo sistema operacional no qual a máquina virtual <strong>Java</strong> está rodando. Ou<br />

seja, geralmente, a máquina virtual não permite o acesso de um código <strong>Java</strong> à origem de um erro (uma<br />

das funções do sandbox), tornando a tentativa de tratamento dos erros impossível.<br />

Um exemplo de exceção pode ser visto no fragmento de código abaixo, onde o programa tenta acessar<br />

um índice inexistente no array alunos:

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

Saved successfully!

Ooh no, something went wrong!