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.103 ]

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


Comando finally



Imagine a seguinte situação, foi aberta uma conexão com o banco de dados para realizar determinada ação, e no meio deste processo seja lançada alguma exceção, como por um exemplo NullPointerException ao tentar manipular um determinado atribuído de um objeto, a conexão até o momento com o banco de dados não seria fechada resultando desta maneira em conexão, sem que nenhuma ação fosse tomada para fechar tal conexão, neste caso seria necessário que mesmo sendo lançada uma exceção no meio do processo a conexão deve ser fechada.

Um outro exemplo bom seria abertura de determinado arquivo para escrita no mesmo, e no meio deste processo é lançada uma exceção por algum motivo, o arquivo não seria fechado, o que resultaria em deixa o arquivo aberto.

Quando uma exceção é lançada e é necessário que determinada ação seja tomada mesmo após a captura de uma exceção utilizamos a palavra reservada finally.

Sintaxe:
try{
   //trecho de código que pode vir a lançar uma exceção
}
  catch(tipo_excecao_1 e)
{
   //ação a ser tomada
}

catch(tipo_excecao_2 e)
{
  //ação a ser tomada
}
catch(tipo_excecao _n e)
{
  //ação a ser tomada
}
finally{
    //ação a ser tomada
}


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

  
   public static void main(String args[])
   {
      String frase = null;
      String novaFrase = null;
      
      try{
        
      novaFrase = frase.toUpperCase();
      
      } catch(NullPointerException e)
      {
         System.out.println("A frase inicial está nula, para solucionar tal problema, foi atribuído-lhe um valor default.");
         frase = "Frase vazia";
            
      }
      finally
      {
         novaFrase = frase.toUpperCase();
      }
      
      System.out.println("Frase antiga: "+frase);

      System.out.println("Frase nova: "+novaFrase);
      
      }
  
  
}


Quando este código fosse executado o mesmo lançaria um NullPointerException, porém esta exceção será tratada desta vez, sendo a mesma capturada pelo catch{...} e dentro deste bloco as devidas providências são tomadas, neste caso é atribuído um valor default à variável frase.

Neste exemplo mesmo o código lançando uma exceção durante a sua execução e a mesma sendo capturada pelo catch, uma determinada ação será tomada no bloco finally, neste caso tanto com a exceção ou não, será executada a linha "novaFrase = frase.toUpperCase();", tornando todas letras da frase maiúscula.

A saída deste programa seria a seguinte:

A frase inicial está nula, para solucionar tal problema, foi atribuído-lhe um valor default.
Frase antiga: Frase vazia
Frase nova: FRASE VAZIA
Página anterior     Próxima página

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

Programe em JAVA - Instalação, configuração e exemplos

Instalação e Configuração do JDK 7

Montando um ambiente utilizando Tomcat + Java + MySQL (Debian)

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

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

  
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