O que é e como funciona a classe Exception em Java?

A classe Exception em Java é a base para exceções verificadas, exigindo tratamento explícito com try-catch ou declaração com throws.

O que é e como funciona a classe Exception em Java?

A classe Exception em Java faz parte da hierarquia de tratamento de erros da linguagem e é usada para representar exceções verificadas (checked exceptions), que precisam ser obrigatoriamente tratadas pelo desenvolvedor.

1. Hierarquia da Classe Exception

A classe Exception herda de Throwable e possui diversas subclasses para diferentes tipos de erro.

Throwable
 ├── Exception (Checked)
 │   ├── IOException
 │   ├── SQLException
 │   ├── TimeoutException
 │   ├── ...
 ├── RuntimeException (Unchecked)
 │   ├── NullPointerException
 │   ├── ArithmeticException
 │   ├── IndexOutOfBoundsException
 │   ├── ...

2. Diferença Entre Exception e RuntimeException

Característica Exception (Verificada) RuntimeException (Não Verificada)
Tratamento obrigatório? Sim Não
Exemplo IOException, SQLException NullPointerException, ArithmeticException
Quando usar? Quando o erro pode ser previsto e tratado Quando o erro ocorre por falha na lógica do código

3. Como Lançar e Capturar uma Exceção (try-catch)

Quando um método pode gerar uma exceção, é necessário tratá-la com try-catch.

import java.io.*;

public class ExemploException {
    public static void main(String[] args) {
        try {
            FileReader arquivo = new FileReader("arquivo.txt");
        } catch (FileNotFoundException e) {
            System.out.println("Erro: Arquivo não encontrado.");
        }
    }
}

Explicação: O código acima tenta abrir um arquivo, mas se ele não existir, lançará uma FileNotFoundException, que precisa ser tratada.

4. Declarando Exceções com throws

Se um método pode gerar uma exceção, podemos declarar isso na assinatura do método usando throws.

import java.io.*;

public class ExemploThrows {
    public void abrirArquivo() throws IOException {
        FileReader arquivo = new FileReader("arquivo.txt");
    }
}

Explicação: Aqui, a responsabilidade de tratar a IOException é do código que chamar abrirArquivo().

5. Criando uma Exceção Personalizada

Podemos criar nossa própria exceção herdando de Exception.

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

Conclusão

A classe Exception é a base das exceções verificadas em Java e deve ser usada para tratar erros previsíveis. Saber utilizá-la corretamente melhora a confiabilidade do código e evita falhas inesperadas.

A classe Exception é essencial para o tratamento de erros em Java. Em aplicações corporativas, como sistemas bancários, erros inesperados precisam ser tratados para evitar problemas em transações financeiras. Saber quando e como usar Exception ajuda a manter um código seguro e confiável.

Algumas aplicações:

  • Tratamento de erros ao acessar arquivos e banco de dados
  • Garantia de estabilidade em aplicações críticas
  • Evitar falhas inesperadas em sistemas financeiros
  • Facilidade na manutenção e depuração de código

Dicas para quem está começando

  • Use try-catch para tratar exceções verificadas
  • Declare exceções com throws quando for necessário
  • Crie exceções personalizadas para regras de negócio específicas
  • Evite capturar exceções genéricas como Exception
  • Registre logs para facilitar a depuração de erros

Contribuições de Rodrigo Farias

Compartilhe este tutorial: O que é e como funciona a classe Exception em Java

Compartilhe este tutorial

Continue aprendendo:

Como diferenciar RuntimeException de outras exceções

A RuntimeException em Java representa erros em tempo de execução que não precisam ser declarados com throws, diferindo de exceções verificadas que exigem tratamento.

Tutorial anterior

Como fazer logs de exceções com SLF4J e Logback

O SLF4J e o Logback são ferramentas poderosas para registrar logs de exceções em Java, garantindo monitoramento eficiente e depuração detalhada.

Próximo tutorial