在使用C#和.NET Framework 4在VS2010中創建新的Windows Forms應用程序時,用戶遇到一個關於未處理異常的異常行為。在Form1_Load處理程序中添加特定代碼後,預期在某一行出現的未處理異常消息沒有顯示。相反,代碼執行跳過該行沒有任何錯誤,應用程序繼續運行。
這種特殊的行為歸因於32位代碼通過wow64模擬層與64位Windows 7交互的方式。問題在於此層攔截來自響應64位窗口管理器生成的通知的代碼的異常。結果,調試器無法識別和進入異常。
為了解決這個問題,提出了幾種解決方法:
將平台目標設置為AnyCPU並取消選中“首選32位”
這種方法將應用程序更改為以64位進程運行,消除了wow64模擬層及其相關的異常問題。但是,它可能會影響“編輯並繼續”功能,並且對於依賴於32位代碼的情況可能不可行。
其他解決方法
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)
以禁用調試模式下的異常捕獲。 以上是VS2010為什麼不顯示64位Winforms應用程序中的未手動異常消息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!