2015-10-06 59 views
-1

不能例外后执行的代码,它是印刷为什么这个UnhandledException事件处理程序不工作?

CCCCC

但不打印

AFTER_EXCEPTION

的代码显示捕获的异常然后存在。

static void Main(string[] args) 
{  
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); // using System.Diagnostics; 

    // Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnThreadException); 

    Process p = Process.GetProcessById(1000); 

    Console.WriteLine("AFTER_EXCEPTION"); 

    Console.ReadLine(); 
} 

static void MyHandler(object sender, UnhandledExceptionEventArgs args) 
{ 
    Console.WriteLine("cccc"); 

    Exception temp = (Exception)args.ExceptionObject; 
    Console.WriteLine("MyHandler caught : " + temp.Message); 
    Console.WriteLine("MyHandler caught : " + temp.TargetSite);   
}  
+1

你在哪里得到异常? –

+2

添加句子以显示部分代码。请详细提供您的问题 –

+0

这是一个非常差的问题,您没有提供详细信息 –

回答

-1

设置全局异常处理程序是很好的,但仍需要使用C#机制,try ... catch。

如果它引发异常并且全局处理程序捕获它,它将不会在异常点恢复,因为它不知道如何处理异常。

因此,线索的名称是未处理的异常(未捕获),通常用于日志记录和优雅清除,而不是C#等效的Visual Basic恢复错误机制。

+0

注意:这个答案是基于我从阅读代码中得到的假设,您应该真的添加一些细节来解释您的推理和您的期望这段代码。 –

相关问题