2012-05-18 17 views
1

我有一個經驗,在我的代碼中應該引發一個異常,但它只是退出例程並繼續運行(即它是一個WinForms項目,所以通過「繼續」我的意思是控制剛剛回來到等待進一步用戶輸入的形式)。在C#中沒有引發異常。只是踢出了日常工作。這是一個錯誤?

我認爲這很奇怪,但解決了問題,並不擔心它。今天,我在一個不同的項目中發生了同樣的事情,其中​​有一個XmlDocument對象的Load()不存在的文件。它應該提出了一個例外,但它只是退出了例程,並將控制權交還給表單。

有沒有其他人經歷過這種行爲或知道什麼可能導致它,或者這聽起來像VS 2010中的錯誤?

+0

我應該注意到,當發生這種情況時,我沒有任何異常處理(即沒有try/catch的)在我的代碼中的任何地方。 –

+0

需要檢查,清潔解決方案。退出VS2010。重新開始和重新編譯。我已經看到了一些情況,其中異常不會拋出,因爲PDB被ProcessExplorer鎖定了 –

+0

您是否實現了AppDomain.UnhandledExceptionEvent? – idstam

回答

4

我得到了同樣的問題,會回來。就我而言,問題只發生在開發中,而不是在發佈之後。爲了獲得錯誤,我發現你需要改變VS中的設置。在調試菜單中,單擊例外項目。這告訴VS何時應該打破錯誤。您需要檢查公共語言運行時異常拋出選項。它應該糾正你的問題。您需要爲每個項目執行此操作。

+0

不幸的是,這也打破了處理的異常。這是一個非常醜陋的解決方案。 – ThunderGr

+0

我知道。我仍在尋找更好的解決方案,但我還沒有找到一個解決方案。 – Stephan

相關問題