获取异常的堆栈跟踪有多低效?我知道它很昂贵,但有多昂贵?在生产环境中,它们一定不应该被使用吗?
如果异常出现在你的关键路径上,那么你已经面临性能问题。获取堆栈跟踪以追踪异常是至关重要的,我个人认为。
我的问题是,当出现意外情况时,为什么您要关注性能?此时,您的应用程序的健全性受到质疑,因此快速性无关紧要。
在生产环境中,对于公共面向的网站,我绝不会将堆栈跟踪信息打印给用户。根据遇到的错误类型,堆栈跟踪可能包含可以泄露安全信息(如数据库名称等)的信息。
同样的规则也适用于错误消息。