Tratamento de Exceções
Olá pessoal, me chamo Lucas Weber, estou cursando o BootCamp Java proposto pelo Santander. Gostaria de trazer um tema proposto em um dos desafios da Trilha Java Básico do BootCamp, a criação de exceções customizadas.
Ao criar uma exceção customizada, temos a possibilidade de extender a classe Expection. Nesse ponto do curso ainda não foi visto orientação a objetos, mas o ponto é que, temos uma estrutura ao qual denominamos classe pai, que possui um comportamento, ao qual, permite que a classe que esteja extendo, implemente também.
O ponto que quero destacar é que um desses comportamentos do qual podemos implementar é criar nossas mensagens de erros customizadas, para adequar ainda mais nossa aplicação e torná-la ainda mais amigável para o usuário, caso um erro seja causado em tempo de execução.
No exemplo do desafio, seria criar uma exceção chamada ArgumentoInvalidoException. Para implementarmos essa característica de mensagens customizadas precisamos extender a classe Exception, portanto a estrutra de declaração fica:
public ArgumentoInvalidoException extends Exception{ }
O próximo passo, para implementar essa característica seria estrutar nossa classe, de modo que nosso método construtor, ou seja, aquele método que é responsável por criar a Exceção quando fazemos sua chamada, receba em um de seus argumentos um mensagem. Estruturado dessa maneira:
public ArgumentoInvalidoException(String mensagem){
super(mensagem);
}
Note que, o método construtor sempre possui a mesma assinatura do nome da classe. Também, está sendo passado como parâmetro para o método, uma variável do tipo String, que será responsável pelo conteúdo da mensagem que causará a exceção. Já dentro do método a chamada do método super() passando como parâmetro a própria mensagem, faz referencia ao método construtor da classe pai, ou seja, a classe Exception ao qual estamos extendendo, isso indica que, é a classe pai que realiza a implementação dessa característica de exibição de mensagem quando a exceção estoura e, nossa classe, enquanto filha, está realizando a implementação desse recurso previamente estruturado.
Com isso, temos a capacidade, em outros métodos indicar o uso dessa exceção, e dado o contexto do tipo de erro, customizar essa mensagem, por exemplo:
public Main {
public static void contar(int n1, int n2) throws ArgumentoInvalidoException{
if (n1 > n2) throw new ArgumentoInvalidoException("O segundo número deve ser maior que o primeiro");
// Restante do código aqui..
}
}
Note que, ao ser invocado, e a condição if ser verdadeira, uma exceção será lançada, e a execução do código será interrompida.
Espero que tenha ajudado 😁😎