January 10, 2014

Debug模式下例外丟出無法被應用程式攔截

在一Windows Forms專案中發現,編譯後的執行檔在執行某個功能時會丟出例外顯示錯誤訊息。試著以Debug模式重現問題,應用程式卻完全不會丟出例外錯誤訊息,但log檔確實有記錄到例外訊息。

加入中斷點後逐步偵錯,才在丟出例外的程式碼停止,但例外訊息只顯示在Output視窗,且沒有詳細資料,就好像被吃掉一樣。


研究了一下發現,在Visual Studio 2010選單Debug-> Exception中,Common Language Runtime ExceptionsThrown欄位是未被勾選的。


在我的例子中,丟出的例外為System.ArgumentOutOfRangeException。可以看到這個項目是沒有被勾選的。


Common Language Runtime ExceptionsThrown欄位勾選,再重新執行一次Debug模式就可以看到應用程式有丟出例外錯誤訊息。


No comments: