Como forçar uma exceção personalizada a ser lançada?

O lançamento de exceções personalizadas em Java permite definir erros específicos do domínio da aplicação, melhorando a legibilidade do código.

Como forçar uma exceção personalizada a ser lançada?

Exceções personalizadas permitem definir erros específicos para uma aplicação, melhorando o tratamento de erros e a clareza do código. Em Java, podemos criar nossas próprias exceções estendendo Exception (para exceções verificadas) ou RuntimeException (para não verificadas).

1. Criando uma Exceção Personalizada

Podemos criar uma classe de exceção personalizada estendendo Exception para forçar seu tratamento.

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

2. Lançando uma Exceção Personalizada

Para lançar a exceção personalizada, usamos throw dentro do código.

public class ContaBancaria {
    private double saldo;

    public void sacar(double valor) throws SaldoInsuficienteException {
        if (valor > saldo) {
            throw new SaldoInsuficienteException("Saldo insuficiente: " + saldo);
        }
        saldo -= valor;
    }
}

Explicação: Se o usuário tentar sacar mais do que o saldo disponível, a exceção SaldoInsuficienteException será lançada.

3. Capturando a Exceção com try-catch

Sempre que uma exceção verificada (Exception) for lançada, o código que a chama precisa tratá-la.

public class TesteExcecaoPersonalizada {
    public static void main(String[] args) {
        ContaBancaria conta = new ContaBancaria();

        try {
            conta.sacar(500);
        } catch (SaldoInsuficienteException e) {
            System.out.println("Erro: " + e.getMessage());
        }
    }
}

4. Criando uma Exceção Não Verificada (RuntimeException)

Se quisermos criar uma exceção que não precisa ser tratada obrigatoriamente, podemos estender RuntimeException.

class ErroDeAutenticacaoException extends RuntimeException {
    public ErroDeAutenticacaoException(String mensagem) {
        super(mensagem);
    }
}

5. Quando Usar Exceções Personalizadas?

Caso de Uso Tipo de Exceção
Erros de negócios previsíveis Exception (Verificada)
Erros inesperados de lógica RuntimeException (Não Verificada)

Conclusão

Lançar exceções personalizadas permite criar erros específicos para a aplicação, tornando o código mais claro e organizado. Escolher entre exceções verificadas (Exception) e não verificadas (RuntimeException) depende da necessidade de obrigar o tratamento do erro ou não.

A criação de exceções personalizadas é essencial para sistemas complexos, como bancos e e-commerces, onde diferentes tipos de erros precisam ser tratados de forma específica. Definir exceções próprias melhora a manutenção do código e a experiência do usuário ao fornecer mensagens de erro mais compreensíveis.

Algumas aplicações:

  • Controle de regras de negócio em aplicações financeiras
  • Tratamento de erros específicos em APIs
  • Melhoria na depuração e manutenção do código
  • Evitar o uso de exceções genéricas no código

Dicas para quem está começando

  • Use Exception para erros que devem ser tratados obrigatoriamente
  • Prefira RuntimeException para erros inesperados
  • Forneça mensagens claras nas exceções personalizadas
  • Evite criar exceções desnecessárias para não complicar o código
  • Registre logs das exceções para facilitar a depuração

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como forçar uma exceção personalizada a ser lançada

Compartilhe este tutorial

Continue aprendendo:

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.

Tutorial anterior

Como tratar exceções dentro de expressões lambda

O tratamento de exceções dentro de expressões lambda em Java pode ser feito com try-catch, wrappers e métodos auxiliares para evitar código verboso.

Próximo tutorial