テストケースを入力するために使用される単純な WinForms アプリがあります。このアプリケーションを .NET 4.0 にアップグレードし、XSD スキーマに対して XML を検証するための新しいタブ ページをタブ ページ コントロールに追加して以来、アプリケーションはランダムにクラッシュしていました。例外を再現できませんでした。
私の QA 担当者が受け取るエラーは、一般的な Windows メッセージです。
TestCaseViewer に問題が発生したため、終了する必要があります。ご不便をおかけしてしまい申し訳ございません。
実際のエラーに到達するために、プログラムの Main メソッドの先頭に次のコードを追加しました。
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();
}
}
残念ながら、これは役に立ちませんでした。エラーが発生しているものは何でも、OS にバブリングしている未処理のエラーを生成する方法で引き続き発生します。
この例外をトラップすることについて、誰か他のアイデアを教えてもらえますか?