Utilizando tratamento de exceções em java

O principal objetivo deste artigo é explicar de forma simples e compacta o tratamento de exceção em java.

[ Hits: 23.060 ]

Por: Robson Fernando Gomes em 25/08/2011 | Blog: http://maguscode.blogspot.com/


Comando throw e throws



Imagine uma situação que não é desejado que uma exceção seja tratada na própria classe ou método, mas sim em outro que venha a lhe chamar. Para solucionar tal situação utilizamos o comando throws na assinatura do método com a possível exceção que o mesmo poderá a vir lançar.

Sintaxe:
tipo_retorno nome_metodo() throws tipo_exceção_1, tipo_exceção_2, tipo_exceção_n
{
... }


Exemplo:
/***
*
* @author Robson Fernando Gomes
*
*/
public class TesteString {

  
   private  static void aumentarLetras() throws NullPointerException //lançando exceção
   {
      String frase = null;
      String novaFrase = null;
      
      novaFrase = frase.toUpperCase();
            
      System.out.println("Frase antiga: "+frase);

      System.out.println("Frase nova: "+novaFrase);
      
   }
  
  
   public static void main(String args[])
   {
      try
      {
      aumentarLetras();
      
      }
         catch(NullPointerException e)
      {
         System.out.println("Ocorreu um NullPointerException ao executar o método aumentarLetras() "+e);
      }
   }
  
  

}


Neste exemplo será lançada uma exceção no método aumetarLetras():

"private  static void aumentarLetras() throws NullPointerException "

E o mesmo será tratado no método main():
  
   ...
   try
      {
      aumentarLetras();
      
      }
         catch(NullPointerException e)
      {
         System.out.println("Ocorreu um NullPointerException ao executar o método    aumentarLetras() "+e);
      }
...

Saída:

Ocorreu um NullPointerException ao executar o método aumentarLetras() java.lang.NullPointerException

Agora imagine o caso que seja necessário lançar uma exceção padrão ao invés uma especifica, para resolver este problemas utilizamos o comando throw dentro do bloco do catch que desejamos converter a exceção.

Sintaxe:
try{
...
}
catch(tipoExcessão_1 e)
{
throw new novoTipoExceçao(e);
}


Exemplo:
/***
*
* @author Robson Fernando Gomes
*
*/
public class TesteString {

  
   private  static void aumentarLetras() throws Exception //lançando exceção
   {
      String frase = null;
      String novaFrase = null;
      try{
      
         novaFrase = frase.toUpperCase();
      
      }catch(NullPointerException e)
      {
         throw new Exception(e);
      }
      
      System.out.println("Frase antiga: "+frase);

      System.out.println("Frase nova: "+novaFrase);
      
   }
  
  
   public static void main(String args[])
   {
      try
      {
      aumentarLetras();
      
      }
         catch(Exception e)
      {
         System.out.println("Ocorreu uma exceção ao executar o método aumentarLetras() "+e);
      }
   }

}


Neste exemplo será lançado um NullPointerException e o mesmo será convertido para Exception e relançado como Exception no método aumentarLetras() e por final o mesmo é tratado no método main().

Saída:

Ocorreu uma exceção ao executar o método aumentarLetras() java.lang.Exception: java.lang.NullPointerException.

Fonte:
Página anterior    

Páginas do artigo
   1. Introdução e Tratando Exceções
   2. Exemplificando tratamento de exceção
   3. Comando finally
   4. Comando throw e throws
Outros artigos deste autor

Leitura e escrita de arquivos utilizando Java

Shell Script Para Iniciantes - Parte I

Leitura recomendada

Programação orientada a objetos e o Java (parte 3)

Abrindo aplicações Java de uma vez por todas

Programação orientada a objetos e o Java (parte 5)

Máquina Virtual Java (Java Virtual Machine)

Streams, lendo do teclado e escrevendo em arquivos com Java

  
Comentários
[1] Comentário enviado por danieltx em 28/08/2011 - 13:49h

Olá Robson. Excelente artigo.
Você poderia falar um pouco sobre a criação de sua própria classe de exceção?

[2] Comentário enviado por magotico em 29/08/2011 - 08:33h

Obrigado :)
Havia escrito a alguns dias atrás sobre a criar classes e exceção personalizadas o link segue abaixo:
http://www.vivaolinux.com.br/dica/Criar-excecoes/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts