e.printstacktrace()的替代方法和示例代码将很有帮助

busg9geu  于 2021-07-11  发布在  Java
关注(0)|答案(3)|浏览(885)

这个问题在这里已经有答案了

为什么exception.printstacktrace()被认为是不好的做法(9个答案)
上个月关门了。
我用过 e.printStackTrace 在我的一个java应用程序中。然而,我在一些论坛上看到,我们应该避免使用 printStackTrace() . 有人能解释一下为什么我应该避免使用 e.printStackTrace() 还有什么替代方法呢?请分享这段代码作为e.printstacktrace()的替代

aiazj4mn

aiazj4mn1#

应该使用记录器,而不是在流上打印整个堆栈跟踪。e、 printstacktrace()将一个throwable及其堆栈跟踪打印到流中,这可能会无意中暴露敏感信息。
应该使用记录器来打印一次性文件,因为它们有很多优点。
更多信息:https://owasp.org/www-project-top-ten/2017/a3_2017-sensitive_data_exposure.html

kyks70gy

kyks70gy2#

您应该避免这样做,因为最好使用log4j这样的记录器,这样您就可以在文件中写入日志并更好地管理日志。
的确,方法

e.printStackTrace()

用于直接在控制台中打印异常堆栈,而这(对于生产应用程序)是不好的。

a7qyws3x

a7qyws3x3#

我通常这样记录错误:

} catch (IOException ex) {
  log.log(Level.WARNING, ex.getMessage(), ex);
}

如果您使用lombok,那么可以使用 @Log 类的注解。

相关问题