1

コードで (ごくまれに) 生成される未処理の例外に関する情報を収集するのに問題があります。私はほとんど標準的な方法でハンドラーを設定しました。

主に私が持っている:

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

ハンドラ関数は次のとおりです。

public void ExceptionProcessor(object sender, UnhandledExceptionEventArgs e)
{
    Log(((Exception)e.ExceptionObject).StackTrace);
}

しかし、私が得るのは1行だけです(常に同じとは限りません)。グーグルで調べたところ、これらの行は .Net Framework ライブラリの奥深くにあり、スタック トレースの最後の行であることを意図していることが明らかになりました。そのため、私のコードに関する実際に役立つ情報がすべて欠落しています。この動作の原因を知っている人はいますか?

私が最近得た行は、System.Threading.AutoResetEvent を System.Threading._ThreadPoolWaitOrTimerCallback にキャストできないことを示しています。

ありがとう。

4

3 に答える 3

0

それはかなり奇妙です。e.ExceptionObject の型は何ですか? カスタム例外ですか?

私の賭けは、興味のある実際の例外がキャッチされ、どこかに再スローされるという状況が発生していることです...

于 2010-10-27T13:15:47.037 に答える
0

内部例外をログに記録しますか? 各例外にはInnerException、別の例外を含む可能性のあるプロパティがあります。

于 2010-10-27T15:23:09.700 に答える
0

e.tostring() を使用して、例外の詳細全体をログに書き込むことがあります。それを試してみてください..

于 2010-10-27T14:24:39.343 に答える