【问题标题】:Exception management practices inside event handlers事件处理程序中的异常管理实践
【发布时间】:2012-01-05 14:52:18
【问题描述】:

.NET 4.0,C#

我正在尝试将一些异常管理框架添加到我的项目中。如果可以,框架会将异常发布到数据库。

我对异常处理进行了大量研究,但在理解我应该如何处理事件处理程序中发生的异常(即 timer.elapsed 或异步回调)时遇到了一些麻烦。每个事件处理程序都应该有一个 try catch 块吗?

【问题讨论】:

    标签: c# .net exception


    【解决方案1】:

    事件处理程序应始终在其主体中包含try..catch..finally 块,以防止事件处理程序传播异常。此外,事件处理程序应该快速执行,因此避免在事件处理程序本身内部执行昂贵的 IO 或数据库操作。

    此外,您可以使用Error 之类的属性来向事件的订阅者指示发生了错误(在异步调用的情况下)。

    更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 2013-05-09
      相关资源
      最近更新 更多