例如,来自 Checkstyle 的 RegexpSingleline 检查:
可以使用此检查[ ... ]查找常见的不良做法,例如调用 ex.printStacktrace ()
然而,我正在努力寻找任何地方,找到一个有效的理由,为什么堆栈跟踪肯定是非常有用的,在跟踪什么导致了异常。我所知道的事情:
堆栈跟踪永远不应该对最终用户可见(出于用户体验和安全目的)
生成堆栈跟踪是一个相对昂贵的过程(尽管在大多数“异常”情况下不太可能是一个问题)
许多日志框架会为您打印堆栈跟踪(我们的不会,也不会,我们不能轻易地更改它)
打印堆栈跟踪不构成错误处理。它应该与其他信息日志记录和异常处理相结合。
避免在代码中打印堆栈跟踪还有什么其他原因?