我有一個用於輸入測試用例的簡單WinForms應用程序。自從我將此應用程序升級到.NET 4.0並將新的標籤頁添加到標籤頁控件以驗證XML與XSD模式之後,應用程序隨機崩潰。我一直無法重現這個例外。Winforms應用程序中未處理的異常
我的QA人收到此錯誤是一般的Windows消息:
TestCaseViewer遇到問題,需要關閉。對此造成的不便,我們表示歉意。
要試圖去我已經添加以下代碼程序的主要方法開始真正的錯誤:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += Application_ThreadException;
事件處理程序是這樣的:
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
try
{
MessageBox.Show(e.Exception.ToString(), @"Thread Exception",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
Application.Exit();
}
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
var ex = (Exception)e.ExceptionObject;
MessageBox.Show(ex.ToString(), @"Unhandled Exception",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
Application.Exit();
}
}
不幸的是,這並沒有起到什麼作用,無論如何,錯誤仍然以這種方式產生未處理的錯誤,而這種錯誤正在冒泡給操作系統。
任何人都可以給我任何其他想法捕獲此異常?
堆棧跟蹤? ** MessageBox.Show(e.Stacktrace); ** – 2011-02-19 05:47:34
只要堆棧跟蹤不爲空,它將在異常時調用ToString()時返回。 – Loathian 2011-02-22 20:04:05