TRATAMENTO DE EXCEES n n n Uma exceo

  • Slides: 12
Download presentation
TRATAMENTO DE EXCEÇÕES n n n Uma exceção em Java é um sinal que

TRATAMENTO DE EXCEÇÕES n n n Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: n n solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma conexão de rede perdida; uma inserção no banco com chave primária repetida;

Conceito n n Exceções representam erros ocorridos no programa que interrompem o fluxo de

Conceito n n Exceções representam erros ocorridos no programa que interrompem o fluxo de execução normal O processo de geração de exceções é chamado de disparo ou lançamento O tratamento de uma exceção disparada é chamado de captura Exceções não capturadas devem ser repassadas

TRATAMENTO DE EXCEÇÕES n n n Exceções em Java são objetos; API Java possui

TRATAMENTO DE EXCEÇÕES n n n Exceções em Java são objetos; API Java possui diversas classes representando exceções. paradigma Tentar-e-Capturar (try-andcatch), onde, quando um comando puder gerar exceções, o mesmo será tentado (executado) e caso a exceção ocorra, a mesma será capturada;

TRATAMENTO DE EXCEÇÕES Error - erros na execução da máquina Virtual Java ou falhas

TRATAMENTO DE EXCEÇÕES Error - erros na execução da máquina Virtual Java ou falhas de hardware. Exception - erros na execução do código Java. Runtime. Exception - erros de "programação". Não é obrigatório o tratamento destas exceções, caso fosse a codificação Java seria muito trabalhosa.

Classificação de Exceções n n n Exceções em Java são classes derivadas da interface

Classificação de Exceções n n n Exceções em Java são classes derivadas da interface Throwable Derivadas dela temos Error e Exception Exceções do tipo Error representam erros internos e término de recursos do JVM As exceções tratadas em nossos programas são do tipo Exception Runtime. Exception representa erros de lógica Outras exceções representam erros de tratamentos de arquivos, conversões, etc.

TRATAMENTO DE EXCEÇÕES n n n Java fornece a seguinte estrutura de comandos: try

TRATAMENTO DE EXCEÇÕES n n n Java fornece a seguinte estrutura de comandos: try { Comandos do Try } catch ( Tipo. Da. Exceção 1 objeto. Da. Exceção 1 ) { Tratamento da Exceção 1 }. . . { } catch ( Tipo. Da. Exceção 2 objeto. Da. Exceção 2 ) { Tratamento da Exceção 2 } [finally { Comandos do Finally } onde : 1º Os Comandos do Try serão executados 2º Caso ocorram exceções, o Tratamento da Exceção ocorrida será executado 3º Os Comandos do finally serão executados (sempre)

TRATAMENTO DE EXCEÇÕES n n n n n try {. . . } catch

TRATAMENTO DE EXCEÇÕES n n n n n try {. . . } catch (Arithmetic. Exception e) { // trata exceções Arithmetic. Exception (subclasse de Runtime. Exception) } catch (Runtime. Exception e) { // trata outras exceções Runtime. Exception (subclasse de Exception) } catch (Exception e) { // trata todas as demais exceções da classe Exception

TRATAMENTO DE EXCEÇÕES n n n Os métodos podem lançar exceções; As exceções são

TRATAMENTO DE EXCEÇÕES n n n Os métodos podem lançar exceções; As exceções são identificadas pela palavra chave throws (são as exceções que o método pode lançar); o identificador throw faz o método lançar a exceção;

TRATAMENTO DE EXCEÇÕES n n n Vamos usar um mecanismo novo para retornar erros;

TRATAMENTO DE EXCEÇÕES n n n Vamos usar um mecanismo novo para retornar erros; O retorno normal de valores por um método usa a palavra "return“; O retorno anormal (indicando erro) usa outra palavra reservada: throw; Da mesma forma que "return", "throw" retorna imediatamente do método; Diferentemente de "return", "throw" só retorna objetos especiais chamados exceções; Essa captura é feita com um bloco try-catch.

TRATAMENTO DE EXCEÇÕES n n n throws declara que o método pode provocar exceções

TRATAMENTO DE EXCEÇÕES n n n throws declara que o método pode provocar exceções do tipo declarado (ou de qualquer subtipo); Exemplo public void metodo() throws SQLException {. . . }

TRATAMENTO DE EXCEÇÕES n n n Uma exceção lançada interrompe o fluxo normal do

TRATAMENTO DE EXCEÇÕES n n n Uma exceção lançada interrompe o fluxo normal do Programa; O fluxo do programa segue a exceção; Se o método onde ela ocorrer não a capturar, ela será propagada para o método que chamar esse método e assim por diante; Se ninguém capturar a exceção, ela irá causar o término da aplicação; Se em algum lugar ela for capturada, o controle pode ser recuperado;

IMPLEMENTANDO UMA EXCEÇÃO Você também pode acrescentar métodos, campos de dados e construtores como

IMPLEMENTANDO UMA EXCEÇÃO Você também pode acrescentar métodos, campos de dados e construtores como em qualquer classe. n É comum é criar a classe com dois construtores n class Nova. Excecao extends Exception { n public Nova. Excecao () {} n public Nova. Excecao (String mensagem) { n super(mensagem); n } n esta implementação permite passar mensagem que n será lida através de to. String() e get. Message(); n