アプリケーションで処理しきれなかった例外を最後にまとめて処理する。
WPF では Application.ThreadException や UnhandledException でなく、 Application.DispatcherUnhandledException で処理する。
プロジェクトにある App.xaml の Application タグに DispatcherUnhandledException 属性を追加する。
DispatcherUnhandledException="Application_DispatcherUnhandledException"
次に App.xaml.cs に下記のようなコードを追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
private void Application_DispatcherUnhandledException(object sender,
DispatcherUnhandledExceptionEventArgs e)
{
string mes = string.Format(
"予期せぬエラーが発生しました。\nお手数ですが、開発者に例外内容を報告してください。\n\n---\n\n{0}\n\n{1}",
e.Exception.Message, e.Exception.StackTrace);
MessageBox.Show(mes,
"予期せぬエラー", MessageBoxButton.OK, MessageBoxImage.Error);
// 例外を処理したことを通知
e.Handled = true;
// アプリケーションを終了
Shutdown();
}
Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。
好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。
詳しくは Web mixi で。