Imagem do artigo Tratamento de exceções e a hierarquia de exceções em Java

17. Tratamento de exceções e a hierarquia de exceções em Java

Página 102 | Ouça em áudio

17. Tratamento de Exceções e a Hierarquia de Exceções em Java

O tratamento de exceções é um dos pilares fundamentais para a criação de programas robustos e confiáveis em Java. Uma exceção é um evento que ocorre durante a execução de um programa e que interrompe o fluxo normal de instruções. O Java utiliza um modelo de tratamento de exceções que permite aos desenvolvedores gerenciar esses eventos anormais de maneira controlada e elegante.

O que são Exceções?

Exceções são problemas que surgem durante a execução de um programa, como tentativas de acessar um índice de array que não existe, operações matemáticas inválidas, ou tentativas de leitura de arquivos que não podem ser encontrados. Em Java, as exceções são objetos que representam essas condições de erro.

Hierarquia de Exceções em Java

As exceções em Java são organizadas em uma hierarquia de classes. No topo desta hierarquia está a classe Throwable, que é subdividida em duas subclasses: Error e Exception. A classe Error é usada para condições graves que um aplicativo normal não deve tentar capturar, como OutOfMemoryError. Por outro lado, a classe Exception é destinada a situações que o aplicativo pode querer capturar e tratar.

A classe Exception tem duas categorias principais: exceções verificadas (checked exceptions) e não verificadas (unchecked exceptions). Exceções verificadas são aquelas que o compilador exige que sejam tratadas ou declaradas no método que as gera. Exceções não verificadas, que incluem RuntimeException e suas subclasses, não precisam ser declaradas ou tratadas e geralmente indicam erros de programação, como NullPointerException ou IndexOutOfBoundsException.

Tratando Exceções

Para tratar exceções em Java, utilizamos os blocos try, catch, e finally. O bloco try contém o código que pode gerar exceções, enquanto o bloco catch é usado para capturar e tratar essas exceções. O bloco finally, que é opcional, contém código que é executado independentemente de uma exceção ser lançada ou não, geralmente para liberar recursos.


try {
    // Código que pode lançar uma exceção
} catch (TipoExcecao1 e) {
    // Tratamento para TipoExcecao1
} catch (TipoExcecao2 e) {
    // Tratamento para TipoExcecao2
} finally {
    // Código que será executado após o try ou catch
}

É possível capturar múltiplas exceções em um único bloco catch a partir do Java 7, usando o operador de pipe (|).


try {
    // Código que pode lançar exceções
} catch (TipoExcecao1 | TipoExcecao2 e) {
    // Tratamento para ambas as exceções
}

Lançando Exceções

Além de tratar exceções, os desenvolvedores também podem lançar exceções usando a palavra-chave throw. Isso é útil para indicar que um método não pode concluir sua execução de maneira normal.


public void fazerAlgo() throws MinhaExcecao {
    if (algumaCondicaoDeErro) {
        throw new MinhaExcecao("Mensagem de erro");
    }
}

Quando um método pode lançar uma exceção verificada, ele deve declarar isso usando a palavra-chave throws na assinatura do método.

Exceções Personalizadas

Os desenvolvedores podem criar suas próprias exceções estendendo a classe Exception ou qualquer uma de suas subclasses. Isso é útil quando se deseja representar condições de erro específicas de um domínio de aplicação.


public class MinhaExcecao extends Exception {
    public MinhaExcecao(String mensagem) {
        super(mensagem);
    }
}

Boas Práticas no Tratamento de Exceções

Ao tratar exceções, é importante seguir algumas boas práticas:

  • Capturar apenas as exceções que podem ser tratadas de maneira significativa.
  • Evitar o uso excessivo de blocos try-catch; isso pode tornar o código difícil de ler e manter.
  • Não capturar Throwable, Error ou RuntimeException sem uma boa razão.
  • Usar exceções personalizadas para tornar o código mais compreensível e manutenível.
  • Documentar as exceções lançadas pelos métodos usando a tag @throws nos comentários Javadoc.

Em resumo, o tratamento de exceções em Java é uma ferramenta poderosa que, quando usada corretamente, permite criar programas mais robustos e confiáveis. Compreender a hierarquia de exceções e saber como capturar, lançar e criar exceções personalizadas são habilidades essenciais para qualquer desenvolvedor Java.

Agora responda o exercício sobre o conteúdo:

Qual das seguintes afirmações sobre o tratamento de exceções em Java é verdadeira?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Tratamento de exceções e a hierarquia de exceções em Java: Introdução ao tratamento de exceções

Próxima página do Ebook Gratuito:

103Tratamento de exceções e a hierarquia de exceções em Java: Introdução ao tratamento de exceções

5 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto