首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppDomain UnhandledException

AppDomain UnhandledException
EN

Stack Overflow用户
提问于 2013-01-05 09:54:29
回答 2查看 3.7K关注 0票数 8

我正在做一个C#项目,我想利用UnhandledException事件来捕获我在项目中可能遗漏的任何异常(希望不会有任何异常,但要站在同一方)。

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

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

代码语言:javascript
复制
AppDomain currentDomain = AppDomain.CurrentDomain;
            currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);

未处理的异常是否仅从类库中使用,或者此事件处理也将从引用类库的任何项目中执行。

感谢您能提供的任何帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 10:00:48

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

另一个建议:如果这是在Windows Forms应用程序中使用的,您可能还希望为System.Windows.Forms.Application.ThreadException添加一个处理程序。例如,当有人忘记向控制事件添加异常处理时,这可以作为后盾。

票数 5
EN

Stack Overflow用户

发布于 2013-01-05 10:04:32

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

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

http://technet.microsoft.com/en-us/subscriptions/index/43wc4hhs(v=vs.80).aspx

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

您的代码可以使用以下命令创建新的应用程序域:

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14167746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档