2
.NET 4.0,C#事件处理程序中的异常管理实践
我试图在我的项目中添加一些异常管理框架。如果可以的话,该框架发布数据库异常。
我已经做了大量关于异常处理的研究,但我在理解如何处理事件处理程序内发生的异常(例如timer.elapsed或异步回调)方面遇到了一些麻烦。 。每个事件处理程序是否应该有一个try catch块?
谢谢!
.NET 4.0,C#事件处理程序中的异常管理实践
我试图在我的项目中添加一些异常管理框架。如果可以的话,该框架发布数据库异常。
我已经做了大量关于异常处理的研究,但我在理解如何处理事件处理程序内发生的异常(例如timer.elapsed或异步回调)方面遇到了一些麻烦。 。每个事件处理程序是否应该有一个try catch块?
谢谢!
事件处理程序应该总是在其主体中有一个try..catch..finally
块以防止事件处理程序传播异常。另外,事件处理程序需要快速执行,以避免在事件处理程序本身内执行昂贵的IO或数据库操作。
此外,您可以使用像Error这样的属性向事件的订阅者指出发生了错误(在发生异步调用的情况下)。
更多信息