我有ThreadExceptionHandler測試WinForms應用程序,顯示未處理的異常被捕獲時,一個消息框,如下所示:ThreadExceptionHandler在MainFrm構造不要再追例外
[STAThread]
static void Main()
{
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show("error caught");
}
當我強迫的錯誤在窗體的構造函數1(例如dividebyzero)如下:
public Form1()
{
InitializeComponent();
int i = 0;
int x = 5/i;
}
和運行Visual Studio之外的應用程序(在Windows 7中),零異常的鴻溝不處理 - 我得到一個無用的「WindowsFormApplica重刑1已停止工作......「消息。
但是,當我將分頻比例例外移動到Form1_Load事件並重新運行時,正常處理異常。
有人可以解釋爲什麼會出現這種情況嗎?我運行這個測試程序的原因是因爲我正在嘗試追查另一個企業應用程序中遇到類似的未處理的異常問題。
+1 - 您的明確描述擊敗我的... :) – 2009-07-14 11:07:10