2009-08-20 15 views
0

Windowsフォームアプリケーションですべての未処理の例外をトラップするためのエレガントな方法はありますか?私はそれらを処理し、それらをログファイルに書きたいと思います。私はASP.NETが持っていることを知っている。私はC#を使用しています。Windowsフォームアプリケーションの例外トラップ

答えて

1

UIスレッドでキャッチされない例外をトラップするにはのみApplication.ThreadExceptionイベントを使用できます。

キャッチされない例外をappdomain内のすべてのスレッドにトラップするには、AppDomain.Current.UnhandledExceptionを使用します。後者は例外を飲み込ませることはできませんが、ハンドラにその例外を記録することはできますが、戻ったら例外はWatsonに渡され、通常のWin32クラッシュダイアログが表示されます。

+0

2番目の方法を使用すると、私はそれを抑えますか? –

+0

これは実行できません。これは仕様によるものです。事実、Windowsアプリケーションのガイドライン(アプリケーションの「Certified for Vista」ステッカーのステッカーが必要な場合に従う必要があり、うまく動作するWindowsアプリケーションの振る舞いに関するガイドであるため、続行する必要があります) )は、特に、エラーはワトソン経由で報告されるべきだと言います。 –

+0

だから私はすべての例外をキャッチする方が良いと思います。 –

関連する問題