20

アプリで未処理の例外をすべて記録/報告しようとしています (エラー報告ソリューション)。常に未処理のシナリオに遭遇しました。このエラーを未処理の方法でどのようにキャッチするのか疑問に思っています。私は今朝たくさんの調査を行い、多くのことを試したことに注意してください..はい、私はこれを見ましたこれ、そしてもっとたくさん。未処理の例外をログに記録するための一般的なソリューションを探しています。

コンソール テスト アプリのメイン メソッド内に次のコードがあります。

Task.Factory.StartNew(TryExecute);

また

Task.Run((Action)TryExecute);

次の方法と同様に:

private static void TryExecute() {
   throw new Exception("I'm never caught");
}

アプリで次のように接続しようとしましたが、呼び出されません。

AppDomain.CurrentDomain.UnhandledException
TaskScheduler.UnobservedTaskException

このエラーを最初に見つけた Wpf アプリでも、これらのイベントに接続しましたが、呼び出されませんでした。

Dispatcher.UnhandledException
Application.Current.DispatcherUnhandledException
System.Windows.Forms.Application.ThreadException

これまでに呼び出される唯一のハンドラーは次のとおりです。

AppDomain.CurrentDomain.FirstChanceException

しかし、キャッチされていない例外のみを報告したいので、これは有効な解決策ではありません (キャッチ ブロックが実行/解決される前に FirstChanceException が呼び出されるため、すべての例外ではありません。

4

2 に答える 2