3

获取异常的堆栈跟踪效率有多低?我知道这很昂贵,但到底有多贵?它们绝对应该在生产环境中使用吗?

4

5 回答 5

13

在生产环境中,记录堆栈跟踪很有帮助,以便用户在联系技术支持时可以找到它。应避免打印堆栈跟踪来代替可理解的(由典型用户)消息。

您不应该关心异常代码块的效率。错误恢复是这里最重要的事情。

于 2008-10-21T20:19:43.023 回答
5

如果异常出现在您的关键路径上,那么您已经遇到了性能问题。获取堆栈跟踪以追踪异常是至关重要的,IMO。

于 2008-10-21T20:19:49.950 回答
5

我的问题是,当某些事情出乎意料地出错时,你为什么要关心性能?在这一点上,您的应用程序的健全性存在问题,所以谁在乎它是否快?

于 2008-10-21T20:22:20.740 回答
1

账单点真的很重要,我添加了评论,但也想在这里添加答案。

在生产环境中,在面向公众的站点中,我永远不会将堆栈跟踪打印给用户。根据遇到的错误的性质,堆栈跟踪可能包含可能泄漏安全信息(数据库名称等)的信息。

同样的规则也适用于错误消息。

于 2008-10-21T20:39:54.590 回答
0

如果我知道堆栈跟踪可能发生在严重依赖于其他部分或其他系统的系统的一部分中,我通常只打印或保存它。对于负责集成的部分尤其如此,因为错误可能是间歇性的,并且严重依赖于环境状态。

于 2008-10-21T20:18:28.080 回答