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

jer*_*mny 7 .net c# exception-handling exception

.NET 4.0,C#

我正在尝试为我的项目添加一些异常管理框架.如果能够,框架会向数据库发布异常.

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

谢谢!

Dev*_*van 17

事件处理程序应始终try..catch..finally在其正文中有一个块,以防止事件处理程序传播该异常.此外,事件处理程序应该快速执行,以避免在事件处理程序本身内执行昂贵的IO或数据库操作.

此外,您可以使用Error之类的属性向事件订阅者指出发生了错误(如果是异步调用).

更多信息