【发布时间】:2011-04-09 04:04:36
【问题描述】:
在 ASP.NET 中,我希望您对什么是处理异常的最佳方式提出意见。
- 您是否建议使用 try/catch 块?
- 最好在每段代码/组件上使用 try/catch 块?或者在哪些情况下?
【问题讨论】:
-
try catch performance 的可能重复项
在 ASP.NET 中,我希望您对什么是处理异常的最佳方式提出意见。
【问题讨论】:
您绝对不应该将每一段代码都包装在 try/catch 块中。您应该只捕获在任何给定点您可以实际处理的异常。应允许所有其他异常传播。
异常的好处之一是您不需要在本地处理每个错误。通过到处使用 try/catch,你积极地反对这个概念。
【讨论】:
只要您有需要清理的连接等资源,请使用 try finally。但是只有当你真的可以对异常做一些事情时才使用 try catch。否则让它在堆栈中冒泡并在全局 asax 中捕获它,这样你就可以优雅地失败。
【讨论】:
抛出更少的异常:您可能需要阅读 stackoverflow thread
【讨论】:
抛出异常是了解应用程序哪里出错的最佳方法。
作为一个旁注,对于支持大型系统的开发人员来说,最烦人的事情是试图找出为什么某些东西没有倒下但没有正确执行,这是因为有人在业务流程的某个地方发现了一个错误,只是做了代码去ssshhhhh。
【讨论】:
尽量减少 try/catch 块,因为它们会产生性能开销。仅当您能够在发生异常时安全地纠正应用程序的状态(例如,关闭连接等)时才使用 try/catch/finally。
【讨论】:
try ... catch 块不会产生任何显着的性能开销;抛出异常确实如此。