关于c#:性能提示try / catch块

Performance Tips try/catch blocks

在ASP.NET中,我希望您对处理异常的最佳方法有什么看法。

  • 您是否建议使用Try/Catch块?
  • 最好在每一段代码/组件上使用try/catch块?或者在什么情况下?

非常感谢你的帮助,谢谢!


您绝对不应该将每段代码都包装在try/catch块中。您应该只捕获可以在任何给定点实际处理的异常。应允许传播所有其他异常。

异常的好处之一是不需要在本地处理每个错误。通过在各处使用try/catch,您可以积极地反对这个概念。


只要有需要清理的连接等资源,就可以使用Try Finally。但是,只有在可以对异常做一些实际的处理时才使用Try-Catch。否则,让它在堆栈中冒泡,并在全局asax中捕获它,这样您就可以优雅地失败。


抛出异常是了解应用程序哪里出错的最好方法。

作为旁注,对于支持大型系统的开发人员来说,最恼人的事情是试图找出为什么某些东西没有崩溃,但没有正确执行,这是因为有人在业务流程的某个地方发现了错误,并使代码变成ssshhhh。


引发较少的异常:您可能希望读取stackoverflow线程


尽量将try/catch块保持在最低限度,因为它们会造成性能开销。只有当发生异常(例如,关闭连接等)时能够安全地更正应用程序的状态时,才使用try/catch/finally。