2009-12-23 48 views
1

在我正在製作的一個應用程序中,有時拋出的但未處理的異常似乎消失在稀薄的空氣中,並導致GUI出現奇怪的錯誤。東西吞沒了未處理的異常?

我通常會逐步找到它,直到到達引發異常的行,此時Visual Studio會立即停止步進並返回到應用程序。

這是一個IRC應用程序,所以它是由異步套接字連接嚴重事件驅動的。不確定這是否相關。

我沒有任何空的catch塊在任何地方或類似的東西。

回答

3

顯然這是一個已知的x64機器的bug。

該錯誤和解決方法是Microsoft Connect

編輯:

你好,

此bug已被封閉, 「外部」,因爲:

如果有人有興趣的原因,當錯誤被關閉這個被張貼此行爲源自 Windows的x64版本如何處理異常。當用戶模式 異常越過內核轉換時,Windows的x64版本不允許 允許異常傳播。因此附加的調試器是 不知道發生異常導致 調試器無法處理未處理的異常。

不幸的是,其中沒有什麼是視覺Studo團隊可以做 解決這個問題,它是操作系統設計的結果。有關此問題的所有 反饋都應發送給Windows團隊;但是Windows團隊認爲這是「正確的」操作 系統設計,並認爲x86行爲是「不正確的」。

最好的問候,Visual Studio調試器

-1

在後臺線程任何未處理的異常導致運行時立即終止。您需要捕獲並處理異步方法中的任何異常。

this related question

1

下面是在尋找神祕的異常調試提示:在Visual Studio中去調試 - >例外...檢查「時拋出」公共語言運行時異常。這樣,每當發生異常,IDE就會中斷。我用了很多來找出似乎被吞噬的異常。

不要忘了把它關掉,雖然。 :)