例如,来自Checkstyle的RegexpSingleline检查:
这个检查可用于查找常见的不良做法,例如调用ex.printStacktrace()
但是,我很难找到任何能够提供正确理由的地方,因为堆栈跟踪在跟踪导致异常的原因时非常有用.我所知道的事情:
最终用户永远不应该看到堆栈跟踪(出于用户体验和安全目的)
生成堆栈跟踪是一个相对昂贵的过程(尽管在大多数"特殊"情况下不太可能成为问题)
许多日志记录框架将为您打印堆栈跟踪(我们的不会也不会,我们无法轻易更改它)
打印堆栈跟踪不构成错误处理.它应该与其他信息记录和异常处理相结合.
还有哪些其他原因可以避免在代码中打印堆栈跟踪?