如果我将AppDomain.CurrentDomain.UnhandledException
代码放在控制台应用程序中,而不是通常的 try-catch 以捕获未处理的异常。这意味着,是否确定任何异常都不会强制应用程序在两者之间终止?如果不是,什么类型的例外不在它的范围内?
问问题
637 次
2 回答
0
不会。这意味着您将有机会在应用程序崩溃之前运行一些代码,但您将无法防止崩溃。文档:
此事件提供未捕获异常的通知。它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。
试图通过盲目地捕获所有异常来使应用程序“防崩溃”是徒劳的:既然你真的不知道出了什么问题,你怎么知道程序可以继续运行呢?
从理论上讲,您在事件处理程序中所做的任何事情都可能以任何可能的方式出错(因为抛出了未处理的异常,而您不知道它是什么,它可能是任何事情)。所以不仅不可能防止应用程序崩溃,而且你还应该非常小心你在处理程序中所做的事情。
于 2012-10-01T12:13:37.907 回答
0
不,应用程序无论如何都会被终止,但它让您有机会在应用程序退出之前正确记录异常。见这里:http: //msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx
它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。
于 2012-10-01T12:13:44.220 回答