0
是否有一種優雅的方法來捕獲Windows窗體應用程序中的所有未處理的異常?我想處理它們並將它們寫入日誌文件。我知道ASP.NET有一個。我正在使用C#。Windows窗體應用程序異常陷印
是否有一種優雅的方法來捕獲Windows窗體應用程序中的所有未處理的異常?我想處理它們並將它們寫入日誌文件。我知道ASP.NET有一個。我正在使用C#。Windows窗體應用程序異常陷印
要在UI線程上捕獲未捕獲的異常只有,可以使用Application.ThreadException
事件。
要在appdomain中的所有線程上捕獲未捕獲的異常,請使用AppDomain.Current.UnhandledException
。後者不會讓你吞下異常,但是 - 你可以將它記錄在處理程序中,但一旦它返回,異常將移交給Watson,Watson將顯示通常的Win32崩潰對話框。
如果我使用第二種方法,我會如何抑制它? – 2009-08-20 20:54:35
你不能這樣做,這是設計。事實上,你不應該 - Windows應用程序指南(如果你想爲你的應用程序貼上「Certified for Vista」貼紙,並且可能要隨時關注,那麼你需要遵循這些指導原則,因爲它是指導Windows應用程序行爲良好的指南)特別說錯誤應該通過Watson報告。 – 2009-08-20 21:19:02
所以我想我最好抓住所有的例外。 – 2009-08-20 21:37:59