我想為我的代碼中可能未捕獲的所有意外異常設置一些處理程序。在Program.Main()我使用以下代碼:AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ErrorHandler.HandleException);但是它沒有按我預期的那樣工作。當我在調試模式下啟動應用程序并引發異常時,它確實調用了處理程序,但是此后,Visual Studio中的異常幫助程序彈出了,好像該異常發生時沒有進行任何處理。我在處理程序中嘗試了Application.Exit(),但效果不佳。我想實現的是,異常由我的處理程序處理,然后應用程序關閉良好。還有其他方法嗎?還是我以錯誤的方式使用了上面的代碼?
3 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
注意,未處理的異常仍然非常致命。您只能將其真正用于記錄日志,或者可能需要匆忙關閉。這或Application.ThreadException不能用作錯誤的全局接收器。
更好的方法是添加適當的處理-例如,圍繞您的整個Main()邏輯。請注意,即使這樣也無法捕獲一些異常,例如表單加載期間的錯誤(這種異常特別令人討厭-您可以使用附加的調試器來捕獲它們,但并非沒有)。
- 3 回答
- 0 關注
- 576 瀏覽
添加回答
舉報
0/150
提交
取消