2010-11-23 234 views
3

我已經編寫了一個實用程序來監視未處理的異常,然後在發生異常時創建小型轉儲。未處理的異常

有沒有辦法,當事件觸發,而不是標準的消息框顯示未處理的異常,我可以禁用並顯示我自己的不同信息?

謝謝。

+0

你用你自己的對話框替換MessageBox後?不確定你在這裏問什麼。 – 2010-11-23 15:01:43

+0

嗨,是的......當用戶運行程序併發生未處理的異常時,它們會得到標準的未處理異常消息框。我想禁用該消息框。當發生未處理的異常時,我有一個事件觸發,創建一個小型轉儲,我也想顯示自己的錯誤消息。謝謝。 – 2010-11-23 15:04:09

回答

2

處理Application.ThreadException事件以顯示您自己的錯誤消息。

你可以在你的主要方法是這樣的頂部掛鉤事件:

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

然後你需要的處理方法:

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) 
{ 
    MessageBox.Show(e.Exception.ToString()); 
} 

編輯:您還可以處理AppDomain.UnhandledException事件因爲某些例外不通過ThreadException處理程序。

2

如果您正在實施它,您可以隨心所欲地做任何事情。在MessageBox上顯示它或將其寫入日誌文件。

1

你能做到這一點,

catch(Exception e) 
{ 
throw new Exception("This is unhandled exception"); 
}