Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que...

Post on 18-Apr-2015

108 views 1 download

Transcript of Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que...

ProgramaçãoBruno Rafael de Oliveira Rodrigues

Tratadores de ExcessõesA exceção é uma indicação de que um erro ou

problema aconteceu durante a execução de uma aplicação.

Essas exceções são aplicadas a trechos de código que apresentam um grau maior de possibilidade de que um erro possa vir a acontecer.

Ao invés de um determinado programa ser finalizado, devido a uma falha, e possível realizar o tratamento de tais exceções, buscando manter a execução perfeita do programa, sem prejuízo algum ao usuário

Cláusulas try / catch / finallytry{

// escreva as instruções passíveis de gerar uma exceção neste bloco

} catch (<tippdaexceção> <nomdavariavel>){

// escreva a ação que o seu programa fará caso ocorra uma exceção de um determinado

} finally {

// escreva a ação que o seu programa executará caso ocorra ou não um erro ou exceção

}

Exceções geradas durante a execução do bloco try podem ser detectadas e tratadas num bloco catch. O código no bloco finally é sempre executado, ocorrendo ou não a exceção.

Sem utilizar exceção

Utilizando a Exceção

Podem existir quantas clausulas catch forem necessárias para o perfeito tratamento da aplicação.

Podem ocorrer situações em que e desejável que sejam realizadas tarefas, mesmo após alguma falha, ou mesmo com o perfeito funcionamento da aplicação. Nesses casos, entra em cena a declaração da clausula finally em que pode ser definido o bloco que ira ser executado.

ExceptionException possui por sua vez dezenas de

subclasses pré-definidas na Plataforma Java, mas uma delas é especial: RuntimeException. Esta exceção indica erros em tempo de execução, resultantes de erros de configuração ou de dados inválidos sendo processados pela aplicação.

ClassCastException

ClassCastException (erro na conversão forçada de tipo) ArithmeticException (cálculos inválidos, como dividor por zero) NullPointerException, IllegalArgumentException, IndexOutOfBoundsException e SecurityException são exemplos de subclasses de RuntimeException.

Principais Exceções

Quando usar exceçõesO tratamento de exceções deve ser utilizado nas seguintes situações:

• processar situações excepcionais nas quais um método seja incapaz de terminar sua função por razoes que fogem a seu controle;

• processar exceções de componentes que não estão projetados para realizar tais tarefas diretamente;

• em projetos de grande porte, para tratar exceções de maneira uniforme em todo o projeto.

ThrowsÉ a responsável por tratar os possíveis erros que

venham a acontecer, porem a clausula throws lista as possíveis exceções que podem ser disparadas

tipoDeRetorno nomeDoMetodo() throws TiposDeExcecao1, TipoDeExcecao2, ...

{

//corpo do metodo

}

Sempre definida para um método completo de uma classe, logo a qualquer momento dentro desse método pode ocorrer uma exceção é então as classes definidas serão executadas

Exemplopublic class TestaException {

public static void main(String[] args) throws FileNotFoundException {

new java.io.FileInputStream("arquivo.txt");

}

Exceções não MonitoradasNão exigem tratamento com o uso de diretivas

try/catch/finnaly, permitindo seu envio implícito para o contexto superior.

Todas as exceções não monitoradas são subclasses de java.lang.RuntimeException

Exemplo

Exceções MonitoradasÉ exigido tratamento obrigatório com try/catch/finally

ou a declaração explícita de seu lançamento para contexto superior por meio da cláusula thows.

Exemplo

Tratamento Qualificado de ExceçõesQualquer exceção pode ser tratada de modo

genérico por meio de um bloco try/catch que apanhe a classe de exceção Exption.

Mas o controle de exceções pode ser mais sofisticado com o encadeamento de múltiplos blocos catch.

Não Qualificado

Qualificado

Pesquise e estudeComo fazer exceções com herança?Qual a diferença entre throw e throws?O que é um stack trace e um printStackTrace?O que fazem as classes Throwable, Exception e

Error?

Sites+http://www.hwn.com.br/pej/ -> Livro Think in Javahttp://javafree.uol.com.br/index.jfhttp://www.guj.com.br/ ->tem um dos maiores forum

de Java, cadastra-se e debata também