控制台应用程序中的强大异常处理

时间:2012-10-01 12:10:36

标签: c# exception-handling try-catch console-application

如果我将AppDomain.CurrentDomain.UnhandledException代码放在控制台应用程序中,而不是通常的try-catch来捕获未处理的异常。这意味着,是否确保任何异常都不会强制应用程序在两者之间终止? 如果不是,那么什么类型的例外超出了它的范围?

2 个答案:

答案 0 :(得分:0)

没有。这意味着您将有机会在应用程序崩溃之前运行一些代码,但您将无法阻止崩溃。 Documentation

  

此事件提供未捕获异常的通知。它允许   应用程序在系统之前记录有关异常的信息   默认处理程序向用户报告异常并终止   应用

试图通过盲目捕捉所有异常来使应用程序“防崩溃”是一个愚蠢的错误:因为你真的不知道出了什么问题,你怎么知道这对于程序继续运行?

从理论上讲,你在事件处理程序中执行的任何可能会以任何可能的方式出错(因为抛出了未处理的异常,你不知道它是什么,它可能是任何东西) 。因此,不仅无法阻止应用程序崩溃,而且您也应该非常小心处理您在处理程序中执行的操作。

答案 1 :(得分:0)

不,无论如何都会终止应用程序,但它会让您有机会在应用程序退出之前正确记录异常。见这里:http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx

  

它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。