2013-03-27 24 views
-2

當我爲TextBox創建LostFocus事件時,將添加NotImplementedException()。我如何捕獲這個異常?我的代碼是:如何在事件方法中捕捉異常

void marks_LostFocus(object sender, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 

編輯

我對不起不明確,我想問的問題是,當我創建引發LostFocus的事件VS自動添加此行。學術上來說。我可以在哪裏找到這個異常,以及它的用途。爲什麼VS自動添加這條線

+0

你希望看到這個例外?捕獲所有未處理的異常? http://stackoverflow.com/questions/5762526/how-can-i-make-something-that-c​​atches-all-unhandled-exceptions-in-a-winforms-a – 2013-03-27 08:38:02

回答

1

把它包裹起來try/catch

void marks_LostFocus(object sender, EventArgs e) 
{ 
    try 
    { 
     throw new NotImplementedException(); 
    } 
    catch(Exception ex) 
    { 
     // handle ex 
    } 
} 
0

只有觸發事件的方法可以捕獲訂閱者方法拋出的所有未處理的異常。還有一個可供您使用的後備解決方案:

訂閱Application.ThreadException事件。

在Program.cs的:

所有的
Application.ThreadException += OnThreadException 


private static void OnThreadException(object sender, ThreadExceptionEventArgs e) 
{ 
    MessageBox.Show(e.Exception.ToString()); 
} 
0

首先 - 你可以實現此方法。

但是,如果你想處理未處理的異常,你可以嘗試使用的unhandled exception eventAppDomain或任何其他global exception handler

+0

AppDomain事件仍將終止應用程序 – jgauffin 2013-03-27 08:42:56

+0

我假設大多數異常將在本地處理程序中處理,並且只有重要的異常纔會到達AppDomain(僅用於日誌記錄)。 – JleruOHeP 2013-03-27 08:44:42

0

接住內從該異常的處理程序本身是荒謬的 - 從調用代碼可以讓IT管理感。但是,看起來你根本就不需要它;考慮到我看到這一點的上下文,它沒有任何作用 - 你可以通過刪除代碼來防止這種異常。

你在這個模塊中做的是實現你自己的邏輯。那就是你實現它。