我应该打印异常堆栈跟踪吗?

时间:2008-10-21 20:15:41

标签: .net debugging error-handling stack-trace

获取异常的堆栈跟踪效率如何?我知道这是昂贵的,但成本如何?他们肯定在生产环境中使用吗?

5 个答案:

答案 0 :(得分:13)

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

您不应该关注特殊代码块的效率。错误恢复是最重要的事情。

答案 1 :(得分:5)

如果critical path上存在例外情况,则表示您已遇到性能问题。获取堆栈跟踪以追踪异常至关重要,IMO。

答案 2 :(得分:5)

我的问题是,当出现意外出错的情况时,为什么要关注性能呢?在这一点上,您的申请的完整性是有问题的,所以谁在乎它是否很快?

答案 3 :(得分:1)

票据点真的是钱,我添加了评论,但也希望在这里添加答案。

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

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

答案 4 :(得分:0)

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