Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

e.getMessage(); Retorno do Catch

Não entendi muito bem o retorno do método getMessage. Como exemplo o código:

catch (Exception e){
    logger.error(e.getMessage());
}

Qual o retorno que é printado no log no caso de cair no catch?

3 respostas

Oi Lucas, tudo bom?

Esse método getMessage retorna uma menssagem mais detalhada do seu problema.

A gente até consegue passar essa menssagem quando jogamos a exception, algo como:

throw new Exception("O motivo do erro vem aqui, normalmente");

Quando cair no console, além de imprimir o stack trace, será imprimida a menssagem "O motivo do erro vem aqui, normalmente".

Espero ter ajudado.

Abraço!

Primeiramente muito obrigado pela resposta André!

Então o getMessage sempre vai retornar o stacktrace?

public void doEvent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            logger.debug(" Dentro do Try doPost - Classe Controller  ");
            if (request.getParameter("acao") != null) {

                if { .........
        ..........    } else {
                request.setAttribute("error", "Erro ao executar esta URL.");
                request.getRequestDispatcher("web/jsp/errorpage.jsp").forward(request, response);
            }
        } catch (Exception e) {
            logger.error(" Erro doPost - Classe Controller " + e.getMessage());
        }

Então neste código se a exceção desse qualquer tipo de erro, iria logar como Exception normal, a mensagem e o stacktrace?

solução!

Opa, acho que não me expressei bem. Ele imprime o stacktrace quando a exception não é tratada. No seu caso, como estamos pegando a exception ele apenas imprimiria a menssagem mesmo =)

Algumas classes tem uma menssagem padrão já gravada caso você não passe nenhuma.

No seu caso, logaria apenas sua menssagem =)

Abraço!