2012-05-16 149 views
1

我的c#程序實現了unhandledExceptionEventHandler。不過,我使用的一個庫引發了一個NotImplemented異常。無論我想要繼續還是退出,Windows都會立即拋出一個對話框。如何捕獲此異常(以便我可以在不提示用戶的情況下退出)UnhandledExceptionEventHandler未捕獲System.NotImplemented異常

+2

你的代碼在哪裏?它是哪個圖書館?你是在DEBUG還是RELEASE模式下編譯?一些更多的信息會有幫助。 –

+0

此外,無論這是WinForms,WPF還是Silverlight。 –

+0

該庫是來自32feet.codeplex.com的藍牙發現包裝。該程序是用DEBUG模式編譯的。我正在執行鄰居發現。異常從庫中拋出,因爲它異步搜索鄰居。 –

回答

0

與使用處理程序相比,使用處理程序來處理入口點更直接。如果您正在從IDE進行調試,則這些對話框對應於處理異常的開始,而UnhandledExceptionEventHandler僅在堆棧已完全展開後,在同一進程結束時以及何時完成時纔有機會執行在那個不幸的線程上沒有任何東西用於調試。您應該能夠禁用IDE中不需要的對話框(例如,like this)。

+0

當應用程序在IDE /調試器之外獨立運行時會發生這種情況。事實上,Visual Studio甚至沒有安裝在該機器上。 –

+0

另外,由於庫是異步搜索搜索鄰居,因此try ... catch不會捕獲此異常。 –

+0

廢話。稱爲代碼的代碼調用拋出異常的代碼。把try/catch放在最頂層的調用者周圍,它會捕獲異常。沒有什麼特別的'NotImplementedException'。 –

1

如果您正在使用VS2010,只需轉到Debug菜單並點擊Exceptions...。現在檢查每個例外Thrown。在調試模式下從IDE再次運行您的程序。現在您的程序將停止每個例外。你將能夠確定你退出時發生了什麼。