【问题标题】:Performance Tips try/catch blocks性能提示 try/catch 块
【发布时间】:2011-04-09 04:04:36
【问题描述】:

在 ASP.NET 中,我希望您对什么是处理异常的最佳方式提出意见。

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

【问题讨论】:

标签: c# asp.net


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    只要您有需要清理的连接等资源,请使用 try finally。但是只有当你真的可以对异常做一些事情时才使用 try catch。否则让它在堆栈中冒泡并在全局 asax 中捕获它,这样你就可以优雅地失败。

    【讨论】:

    • 没有。不要使用异常进行资源清理。使用“使用”语句。
    【解决方案3】:

    抛出更少的异常:您可能需要阅读 stackoverflow thread

    【讨论】:

      【解决方案4】:

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

      作为一个旁注,对于支持大型系统的开发人员来说,最烦人的事情是试图找出为什么某些东西没有倒下但没有正确执行,这是因为有人在业务流程的某个地方发现了一个错误,只是做了代码去ssshhhhh。

      【讨论】:

        【解决方案5】:

        尽量减少 try/catch 块,因为它们会产生性能开销。仅当您能够在发生异常时安全地纠正应用程序的状态(例如,关闭连接等)时才使用 try/catch/finally。

        【讨论】:

        猜你喜欢
        • 2013-05-22
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        • 2017-06-17
        相关资源
        最近更新 更多