处理来自引用dll的未处理异常

时间:2014-01-06 10:02:15

标签: c# .net exception dll uncaughtexceptionhandler

我创建了一个c#dll来处理应用程序中所有未处理的异常。

添加了

AppDomain appDomain = AppDomain.CurrentDomain;
appDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);
我的dll项目中的

代码,添加了对我的应用程序的引用。

在调试时,如果我的应用程序抛出一个未经处理的异常,它会自动从dll中捕获并成功登录到文件。

但是当我的应用程序被部署(或直接执行我的应用程序(双击exe))时,dll无法从应用程序中捕获未处理的异常。

1 个答案:

答案 0 :(得分:5)

请参阅MSDN上的this

您可以尝试将add handler用于应用程序的threadException,也可以尝试使用CurrentDomain Unhandled Exception,就像在代码中编写一样

Application.ThreadException += new ThreadExceptionEventHandler(Error_.MyExc);
Application.SetUnhandledExceptionMode(Error_.MyCatchExc);

// from your code 
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);