Exceções e.toString() e e.getMessage();

Pessoal, depois de ler alguns documentos sobre exceção, continuei com algumas dúvidas sobre alguns tratamentos das mesmas:

catch (Exception e) {
		LOGGER.error("Erro nos parametros do método xx: " + e.toString());

ou

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

Nesses dois casos o que é impresso?

O getMessage() teoricamente te dá a mensagem de erro que foi escrita por quem atirou a exceção.

throw new Exception("mensagem que vai ser retornada pelo getMessage()");

O toString() varia. É um método que é herdado de Object e cada implementação pode sobrescrevê-lo da forma que bem entender, desde retornar a mesma coisa do getMessage() até retornar a stack trace inteira em uma String.

Geralmente o toString() tem informações mais detalhadas, como a classe da exceção e suas causas.

Dica: Esse episodio do hipsters.tech aborda esse tema de logging, bem legal! :slight_smile:

1 curtida

Obrigado @lvbarbosa! Eu estava em duvida porque neste exemplo do e.toString() ele imprimia “java.lang.NullPointerException”…

Vou escutar o podcast pra ver se clareia mais minha mente kk, vlw