C# AppDomain未处理异常

C# AppDomain未处理异常,c#,exception,unhandled-exception,C#,Exception,Unhandled Exception,我正在一个C#项目中工作,希望利用未处理的异常事件捕获我在项目中可能遗漏的任何异常(希望不会有异常,而是站在同一边) 我制作了相当多的软件,所以我想制作一个类库,我所有的项目都可以使用,所以我想有一个函数,可以完成我所有项目的所有初始化工作,而不需要我复制并粘贴代码到每个项目中来做同样的工作 我想知道的是,类库中是否有使用以下代码的未处理异常事件 AppDomain currentDomain = AppDomain.CurrentDomain; currentDomai

我正在一个C#项目中工作,希望利用未处理的异常事件捕获我在项目中可能遗漏的任何异常(希望不会有异常,而是站在同一边)

我制作了相当多的软件,所以我想制作一个类库,我所有的项目都可以使用,所以我想有一个函数,可以完成我所有项目的所有初始化工作,而不需要我复制并粘贴代码到每个项目中来做同样的工作

我想知道的是,类库中是否有使用以下代码的未处理异常事件

AppDomain currentDomain = AppDomain.CurrentDomain;
            currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);
未处理的异常将仅在类库中使用,或者此事件句柄也将从引用类库的任何项目中执行


谢谢你能提供的帮助

假设您的所有项目都在同一appdomain中运行,这将正常工作。我们将这段代码封装在一个公共DLL中,该DLL在许多应用程序之间共享


另外一个建议是:如果这在Windows窗体应用程序中使用,您可能还希望为添加一个处理程序。例如,当有人忘记将异常处理添加到控件事件时,这将起到支持作用。

可以将程序集加载到不同的应用程序域中,但只要将程序集(如类库)加载到当前应用程序域中,这将处理异常

应用程序域和程序集之间的关系:

例如,
Assembly.LoadFile()
Assembly.Load()
将程序集加载到当前应用程序域中

您的代码可能正在创建具有以下内容的新应用程序域:

AppDomain.CreateDomain(..)
,则它可以将程序集加载到此域,而您的代码不会处理这些程序集


如果您在项目中引用库,它们将加载到当前应用程序域。

谢谢您的帮助。这是我正在开发的一个控制台应用程序,但我将对表单的ThreadException进行说明。WPF应用程序也是如此,还是只是老式的windows窗体