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。