LOG.error("IOException: " + e.getMessage(), e); 和有什么区别?和 LOG.error("IOException: " +e.getMessage());?
What is the difference between LOG.error("IOException: " + e.getMessage(), e); and LOG.error("IOException: " +e.getMessage());?
我观察到这两种说法都是有效的。与第二个语句相比,第一个语句中记录的额外内容是什么?
第一个还记录原始异常(和堆栈跟踪),第二个仅记录消息。
因此,第一个语句中记录的 'extra thing' 是原始异常。这通常是一件好事,因为这样可以更轻松地调试错误。
根据文档
void error(Object message) => 记录具有错误日志级别的 消息。
void error(Object message, Throwable t) => 记录一个 error 错误日志级别。
我想这可能会解决你的疑问。
如果您使用带有 throwable 参数的方法,支持团队将非常感谢您。第二个只打印异常的原因,第一个显示堆栈跟踪。
如果您在 try / catch 中使用第二个异常,您可能隐藏了原始异常,因为它只打印第一个异常的消息。
我观察到这两种说法都是有效的。与第二个语句相比,第一个语句中记录的额外内容是什么?
第一个还记录原始异常(和堆栈跟踪),第二个仅记录消息。
因此,第一个语句中记录的 'extra thing' 是原始异常。这通常是一件好事,因为这样可以更轻松地调试错误。
根据文档
void error(Object message) => 记录具有错误日志级别的 消息。
void error(Object message, Throwable t) => 记录一个 error 错误日志级别。
我想这可能会解决你的疑问。
如果您使用带有 throwable 参数的方法,支持团队将非常感谢您。第二个只打印异常的原因,第一个显示堆栈跟踪。
如果您在 try / catch 中使用第二个异常,您可能隐藏了原始异常,因为它只打印第一个异常的消息。