我可以在类库中向AppDomain.CurrentDomain.UnhandledException添加处理程序吗
本文关键字:添加 UnhandledException 处理 程序 CurrentDomain AppDomain 类库 我可以 | 更新日期: 2023-09-27 17:58:51
我想订阅AppDomain.CurrentDomain.UnhandledException事件以捕获任何错误,因为我正在尝试一种新的设计模式,我不想在每个事件上都设置try-catch。
通常在win-forms应用程序中有一个主要入口点,但这是另一个应用程序调用的类库。
类库中是否有一个主入口点可以连接此事件,或者在类库中是不可能的,除非我确定一个方法会在其他方法之前被调用
// Set the unhandled exception mode to force errors to go through our handler.
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
// Add the event handler for handling thread exceptions to the event.
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
感谢Brian Dishaw
很明显,这并没有为您提供一些非声明性的方法来分配处理程序,例如在app.config中分配跟踪侦听器,但这给了我一个想法。
您可以编写自己的配置部分来执行此代码。然后,当加载配置时,你可以分配事件处理程序,我会找到一些关于如何做到这一点的链接。。。
然而,你的配置必须出现在主应用程序中,所以这可能是不对的。
EDIT对不起,如果没有某种IoC框架,我认为没有办法做到这一点,还有什么会加载你的类。我能想到的唯一选项都需要对主应用程序进行某种更改。
我对犯错很感兴趣。