3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
重寫,我已經(jīng)弄清楚它來(lái)自哪里。Windows在64位版本的Windows 7上運(yùn)行時(shí),如果在32位進(jìn)程中引發(fā)異常,Windows會(huì)出現(xiàn)異常。它會(huì)吞下由響應(yīng)由64位Windows管理器觸發(fā)的Windows消息而運(yùn)行的代碼引發(fā)的任何異常。與WM_SHOWWINDOW一樣,導(dǎo)致Load事件被引發(fā)的消息。
調(diào)試器起作用,因?yàn)楫?dāng)它處于活動(dòng)狀態(tài)時(shí),Winforms應(yīng)用程序中的正常異常捕獲被關(guān)閉以允許調(diào)試器停止異常。在這種情況下不會(huì)發(fā)生這種情況,因?yàn)閃indows 7首先吞下異常,阻止調(diào)試器看到它。

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
它是按設(shè)計(jì)進(jìn)行的(盡管極其愚蠢的設(shè)計(jì),IMO)。您的異常是在展開(kāi)堆棧期間遇到內(nèi)核模式邊界。如果可以,切換到其他一些事件,或者不要讓異常逃脫;?如果你期望你的調(diào)試器在OnLoad上自動(dòng)中斷未處理的異常,這沒(méi)有用。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
WinForms框架類不會(huì)自動(dòng)捕獲任何異常。這不是一個(gè)錯(cuò)誤,它是設(shè)計(jì) - 他們會(huì)做什么與例外?
您必須在任何情況下?lián)碛凶约旱膖ry / catch塊,或者處理Application.ThreadException
事件。該事件對(duì)于某些通用處理代碼(如記錄異常或顯示錯(cuò)誤對(duì)話框)很有幫助,但顯然它不能對(duì)任何單個(gè)事件或異常類型執(zhí)行任何特定操作。
添加回答
舉報(bào)