我有一個MDI父/子應用程序。
在Program.cs文件中,我針對ThreadException和UnhandledException都有一個全局異常處理程序。WinForm「全局」MDI子窗體「唯一」捕獲異常
那些工作正常。
當我在全局級別得到未處理的異常時,在UnhandledException處理程序內部調用Environment.Exit(1)來關閉應用程序,因爲我不知道應用程序的當前狀態。
在子窗體中,我「通常」將以下內容添加到事件處理程序中。
try
{
// Some Code
}
catch (Exception ex)
{
HandleException(ex);
MessageBox.Show("Some message");
this.Close();
}
我想知道是否有將我所有的孩子形成了全球性的異常處理程序(我有他們繼承鹼基形式),可以捕獲異常,並關閉子窗體不關閉的方式整個應用程序。
這樣,如果開發人員「忘記」在事件上添加try catch塊,它不會轟炸整個應用程序。
我同意崩潰轉儲會很方便。我有一個全局的異常記錄器,可以保存堆棧跟蹤,一些性能設置等等,它們保存在一個sql數據庫中供審閱,但我不想因爲有人忘記添加try catch而終止應用程序像在數字文本框中輸入字符串一樣簡單。 – goroth