2015-10-06 152 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

注意:這個答案是基於我從閱讀代碼中得到的假設,您應該真的添加一些細節來解釋您的推理和您的期望這段代碼。 –

相關問題