C# でグローバル例外ハンドラーを作成し、その後もコードの実行を継続できますか? 質問する

C# でグローバル例外ハンドラーを作成し、その後もコードの実行を継続できますか? 質問する

.NET では、デフォルトの例外ハンドラにより、ユーザーはプログラムの実行を継続できます。ただし、スタック トレースを "errorlog.txt" ファイルに保存するグローバル例外ハンドラがあれば、ユーザーはそれを私に送信でき、"詳細" をクリックしてダイアログからコピーすることを忘れずに済みます (また、読み込まれたアセンブリなどに関する無駄な情報もすべて削除できます)。ただし、これを行うと、コードが続行方法を認識できないため、アプリを終了するしかありません。両方の長所を活かす方法はありますか? (はい、私が求めているのは基本的にログ記録付きの "On Error Resume Next" であることは承知していますが、本当に便利だと思います!)

ベストアンサー1

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

アプリケーションの起動時にこのイベントにバインドすると、アプリケーションがスローする未処理の例外をキャッチして、ファイルに保存できるようになります。(Exceptionのオブジェクト部分を使用しますUnhandledExceptionEventArgs。エラーが発生した場所から再開することはできないと思います。

おすすめ記事