事件处理程序内部的异常管理实践

本文关键字:管理 异常 程序 内部 事件处理 | 更新日期: 2023-09-27 18:19:43

.NET 4.0,C#

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

我已经对异常处理做了大量的研究,但我在理解如何处理事件处理程序中发生的异常(即timer.exposed或异步回调)方面遇到了一些困难。每个事件处理程序都应该有一个try-catch块吗?

事件处理程序内部的异常管理实践

事件处理程序的主体中应始终有一个try..catch..finally块,以防止事件处理程序传播异常。此外,事件处理程序应该执行得很快,这样就可以避免在事件处理程序本身内部执行昂贵的IO或数据库操作。

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

更多信息

  • 多播委托中的C#事件基础和异常处理
  • c中使用事件处理程序的顶级异常处理#
  • C#事件处理程序应该是异常安全的吗
  • 异步命令模式-异常处理
  • 实现基于事件的异步模式的最佳实践