C# 为什么winforms未处理异常框有时会继续?

C# 为什么winforms未处理异常框有时会继续?,c#,winforms,exception,C#,Winforms,Exception,最近,我转而以这种方式处理未处理的异常: Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); AppDomain.CurrentDomain.UnhandledExceptio

最近,我转而以这种方式处理未处理的异常:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
这对于日志记录和其他方面都很好,但我已经失去了旧的未处理异常框“继续”的功能。我当前的处理程序只是提示重新启动。很多时候,在未处理的异常框中单击“继续”实际上可以使程序正常运行。这是怎么回事?我现在捕获未处理异常的方式是否有一种允许“继续”的方式?比如说,如果异常属于某一类型,我是否可以像未处理的异常框一样尝试“继续”?或者这是不可能的


有人了解例外世界的基本情况吗?很想听听你们的想法。

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


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

请删除此问题,我没有立即注意到,当我捕捉到这样的异常时,它确实会像未处理框那样继续。