性能提示:try/catch块

3

在ASP.NET中,我想知道您对处理异常的最佳方式有何看法。

  • 您建议使用try/catch块吗?
  • 最好在每个单独的代码/组件上使用try/catch块吗?或者在哪些情况下使用?

可能是一个重复的问题,和 try catch性能 相似。 - H H
5个回答

5

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

异常的好处之一是您无需在本地处理每个错误。通过在各个地方使用try/catch,您实际上正在违反这个概念。


1

每当您有需要清理的资源(如连接)时,请使用try finally。但是,仅在您确实可以处理异常时才使用try catch。否则,让它沿着堆栈向上冒泡,并在global asax中捕获它,以便您可以优雅地失败。


不要使用异常来进行资源清理。请使用“using”语句。 - jgauffin

0

减少抛出异常的次数:您可能想阅读stackoverflow 线程


0

抛出异常是了解应用程序出错位置的最佳方式。

顺便说一下,对于支持大型系统的开发人员来说,最烦人的事情是尝试弄清楚为什么某些东西没有崩溃但表现不正确,原因是有人在业务流程中捕获了错误并使代码静默。


-1
尽量将 try/catch 块的使用减至最少,因为它们会导致性能开销。仅在异常发生时有能力安全地纠正应用程序状态(例如关闭连接等)时才使用 try/catch/finally。

使用 try ... catch 块不会产生任何显著的性能开销;抛出异常才会。 - LukeH
什么代价?http://www.programmersheaven.com/user/pheaven/blog/175-Do-trycatch-blocks-hurt-runtime-performance/ - H H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接