2011-04-24 52 views
1

我最近切换到我的处理未处理的异常,这种方式:为什么winforms未处理的异常框有时会继续?

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); 
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); 

这将是很好的记录,什么不可以,但我已经失去了旧未处理的异常框为“继续”的能力。我目前的处理程序只是提示重启。很多时候,单击继续在那个未处理的异常框中实际上保持程序运行正常。这个怎么用?有没有一种方法可以允许我继续捕捉未处理的异常呢?说如果异常是某种类型的,我可以尝试像“未处理的异常”框一样“继续”吗?或者这是不可能的?

有没有人知道异常世界的细节?很想听听你们的想法。

+0

请删除这个问题,我没有马上注意到,当我发现像这样的异常时,它看起来像未处理的盒子那样继续。 – 2011-04-30 10:44:49

回答

2

应用程序终止,因为这是CLR的默认行为。如果你有一个未处理的异常,这意味着你的程序中有一个严重的缺陷,对这种情况的最佳处理是关闭整个应用程序。

但是,如果您想在这种未处理的异常之后继续,还有一种技术。您可以在应用程序中创建第二个域,并在此处加载库。不同应用程序域中的例外是独立的。看看我的blog entry这个,有一些示例代码可用。

相关问题