相关疑难解决方法(0)

为什么exception.printStackTrace()被认为是不好的做法?

有一个很大材料这表明印刷异常的堆栈跟踪是不好的做法.

例如,来自Checkstyle的RegexpSingleline检查:

这个检查可用于查找常见的不良做法,例如调用ex.printStacktrace()

但是,我很难找到任何能够提供正确理由的地方,因为堆栈跟踪在跟踪导致异常的原因时非常有用.我所知道的事情:

  1. 最终用户永远不应该看到堆栈跟踪(出于用户体验和安全目的)

  2. 生成堆栈跟踪是一个相对昂贵的过程(尽管在大多数"特殊"情况下不太可能成为问题)

  3. 许多日志记录框架将为您打印堆栈跟踪(我们的不会也不会,我们无法轻易更改它)

  4. 打印堆栈跟踪不构成错误处理.它应该与其他信息记录和异常处理相结合.

还有哪些其他原因可以避免在代码中打印堆栈跟踪?

java exception-handling printstacktrace

120
推荐指数
7
解决办法
11万
查看次数

标签 统计

exception-handling ×1

java ×1

printstacktrace ×1