7

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

添加

AppDomain appDomain = AppDomain.CurrentDomain;
appDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);

我的 dll 项目中的代码,添加了对我的应用程序的引用。

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

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

4

1 回答 1

6

在 MSDN 上看到这个

您可以尝试对应用程序的 threadException 以及 CurrentDomain Unhandled Exception 使用添加处理程序,就像您在代码中编写的那样

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

// from your code 
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyErrorHandler);
于 2014-01-06T10:09:49.823 回答