1
resposta

O método e.getCause() está retornando null para a Classe Exception

No vídeo "Gerando o log da aplicação" da aula "04-Interceptor e exceções" , é feito o log customizado da aplicação no método salvarAgendamentoEmail da classe AgendamentoEmailBusiness com o try-catch usando a EJBException e depois verificado o seguinte: if (e.getCause() instance of ConstraintViolationException) Para definir se o tipo do log, é Info ou Severe.

Quando é criado o Interceptor no vídeo "Criando interceptor" e o try-catch acima é feito no LoggerInterceptor, mas trocando o tipo da exceção de EJBException para Exception, o e.getCause() passa a retornar null e para funcionar a condição que define o tipo de log (Info ou Severe), tive que retirar o e.getCause(): if(e instanceof ConstraintViolationException)

Eu gostaria de saber porque e.getCause() retorna null nesse contexto? Obrigado, Marcelo

1 resposta

O método getCause() da classe Throwable é o método embutido usado para retornar a causa desse throw ou nulo se a causa não puder ser determinada para a exceção ocorrida. Todos os métodos PrintStackTrace da classe Throwable invocam o método getCause () para determinar a causa de Throwable ou Exception. Em termos simples, pode-se dizer que este método retorna a causa pela qual a exceção ocorreu. Mas dependendo da exception pode ser que a cause não seja definida.