我正在处理一个 C# 项目,并希望利用 UnhandledException 事件来捕获我在我的项目中可能遗漏的任何异常(希望除了在同一侧之外不会有任何异常)。
我制作了相当多的软件,所以我想制作一个我的所有项目都将使用的类库,所以我想要一个函数来完成我所有项目的所有初始化工作,而无需我复制并将代码粘贴到每个项目中以完成相同的工作。
我想知道的是,我是否在类库中使用以下代码处理了未处理的异常事件
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);
未处理的异常是否仅在类库中使用,或者此事件句柄是否也会从引用类库的任何项目中执行。
感谢您提供的任何帮助。
最佳答案
假设您的所有项目都在同一个应用程序域中运行,这将正常工作。我们将这段确切的代码封装在一个公共(public) DLL 中,该 DLL 可在众多应用程序之间共享。
附加建议:如果在 Windows 窗体应用程序中使用它,您可能还想为 System.Windows.Forms.Application.ThreadException 添加一个处理程序.例如,当有人忘记向控制事件添加异常处理时,这可以作为后盾。
关于c# - AppDomain 未处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167746/