As exceções personalizadas em java são essenciais para um tratamento de erro mais significativo e específico em um programa Java. Criar suas próprias exceções permite capturar condições de erro que são exclusivas do seu domínio de aplicação, garantindo uma maneira mais clara de comunicar problemas específicos.
Posts recentes
Quando Criar uma Exceções Personalizadas em Java?
A criação de exceções personalizadas é recomendada quando as exceções padrão de Java (como IllegalArgumentException ou NullPointerException) não cobrem adequadamente a lógica de erro que você quer manipular. Por exemplo, ao desenvolver um sistema bancário, você pode querer lançar uma exceção SaldoInsuficienteException para indicar quando um cliente tenta realizar uma transação com saldo insuficiente.
Criando uma Exceção Personalizada
Para criar uma exceção personalizada, basta criar uma nova classe que herde de Exception (se for uma exceção verificada) ou de RuntimeException (para exceções não verificadas). O exemplo a seguir mostra uma exceção personalizada chamada SaldoInsuficienteException.
public class SaldoInsuficienteException extends Exception {
public SaldoInsuficienteException(String mensagem) {
super(mensagem);
}
}
Exemplo de Uso de Exceção Personalizada
Vamos agora criar um exemplo de aplicação em que a exceção SaldoInsuficienteException é lançada caso o usuário tente sacar mais do que o saldo disponível em conta.
public class ContaBancaria {
private double saldo;
public ContaBancaria(double saldoInicial) {
this.saldo = saldoInicial;
}
public void sacar(double valor) throws SaldoInsuficienteException {
if (valor > saldo) {
throw new SaldoInsuficienteException("Saldo insuficiente para realizar o saque.");
}
saldo -= valor;
System.out.println("Saque realizado com sucesso. Saldo atual: " + saldo);
}
public static void main(String[] args) {
ContaBancaria conta = new ContaBancaria(500);
try {
conta.sacar(600);
} catch (SaldoInsuficienteException e) {
System.out.println("Erro: " + e.getMessage());
}
}
}
Explicação do Exemplo
- Definindo o Construtor: A classe
SaldoInsuficienteExceptionrecebe uma mensagem de erro no construtor e a passa para a classe pai (Exception), permitindo que a mensagem seja exibida ao capturar a exceção. - Lançando a Exceção: No método
sacar, a exceçãoSaldoInsuficienteExceptioné lançada quando o valor do saque excede o saldo da conta. - Capturando a Exceção: No
main, o métodosacaré chamado dentro de um blocotry-catch. Caso a exceção seja lançada, a mensagem de erro é capturada e exibida ao usuário.
Exceções Personalizadas Verificadas vs. Não Verificadas
Exceções Verificadas (Checked): Herde de Exception para forçar o uso de try-catch ou throws. São indicadas para erros que o programa não pode contornar sozinho e deve obrigatoriamente tratar.
public class IdadeInvalidaException extends Exception { }
Exceções Não Verificadas (Unchecked): Herde de RuntimeException. São utilizadas para erros que, na maioria das vezes, indicam falhas de lógica de programação e não obrigam o uso de blocos try-catch.
public class IdadeInvalidaRuntimeException extends RuntimeException { }
Conclusão
Exceções personalizadas tornam o código mais legível e o tratamento de erros mais específico, facilitando a identificação e a resolução de problemas únicos do seu domínio de aplicação.
