.NET 4.0,C# 我正在尝试在我的项目中添加一些异常管理框架。该框架如果可以的话会将异常发布到数据库中。 我已经对异常处理进行了大量研究,但是我有点难以理解我应该如何处理事件处理程序中发生的异常(例如定时器过期或异步回调)。每个事件处理程序都应该有一个try catch块吗?
事件处理程序应该在其主体中始终具有try..catch..finally块,以防止事件处理程序传播异常。此外,预期事件处理程序快速执行,因此避免在事件处理程序本身内执行昂贵的IO或数据库操作。此外,您可以拥有一个名为Error的属性,以向事件的订阅者指示发生了错误(在异步调用的情况下)。更多信息: C#事件基础和多播委托中的异常处理 使用C#事件处理程序进行顶级异常处理 C#事件处理程序是否应该具备异常安全性? 异步命令模式 - 异常处理 实现基于事件的异步模式的最佳实践