csharp 【WPF】【网址のみ】例外をまとめてトラップする

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 【WPF】【网址のみ】例外をまとめてトラップする相关的知识,希望对你有一定的参考价值。

// WPFのUIスレッドで発生した未処理例外をまとめてハンドリングする
public App()
{
  this.DispatcherUnhandledException += App_DispatcherUnhandledException;
}

private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
  MessageBoxResult result = MessageBox.Show("例外発生", "エラー", MessageBoxButton.YesNo, MessageBoxImage.Warning);
  if(result == MessageBoxResult.Yes)
  {
    // 例外を処理済みにできる。
    e.Handled = true;
  }
}

// 全ての未処理例外を最後にまとめてハンドリングする
// 但し、イベントハンドラーを抜けた時点でプログラムは終了する。
public App()
{
  AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
}

private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
  var exception = e.ExceptionObject as Exception;
  if (exception == null)
  {
    MessageBox.Show("System.Exceptionとして扱えない例外");
    return;
  }

  string errorMember =  exception.TargetSite.Name;
  string errorMessage = exception.Message;
  string message = string.Format(@"例外が{0}で発生。プログラムは終了します。エラーメッセージ:{1}", errorMember, errorMessag);
  MessageBox.Show(message, "UnhandledException", MessageBoxButton.OK, MessageBoxImage.Stop);
  Environment.Exit(0);
}

以上是关于csharp 【WPF】【网址のみ】例外をまとめてトラップする的主要内容,如果未能解决你的问题,请参考以下文章

csharp 日时关连の处理をまとめた拡张メソッド

scss 位置の位置指定まとめて出力。

html 个々の元でイベント处理するか,亲の元でまとめて处理するかの比较

1801日語听解4第10回:5月12日

1801日語听解4第10回:5月12日

csharp コードの秘诀は吉斯特に移行します。今まではEvernote的に全てまとめていたけれど,吉斯特だとコードのシンタックスハイライトが效いて便利なので,コード部分に关しては要点を使ってみたいと