2

重複の可能性:
コンソールアプリケーションの.NETグローバル例外ハンドラ

stackoverflowでのグローバル例外処理について多くのことを読みましたが、自分のトピックを適切に参照しているものが見つかりませんでした。発生するメソッドだけで例外をキャッチするコンソールアプリケーションを作成しました。スローはまったくありません。私が欲しいのは、グローバルな例外処理です。私は例外処理に関する基本的なガイドラインはありませんが、それらの基本を超えてはわかりませんでした。想像上、これらの例外を処理する1つのクラスがあるはずです(異なるクラスのメソッドによってスローされます)。エラー記録やエラー報告のメカニズムはまだ必要ありません。このグローバル処理を実装するには、基本(パターンなど)が必要です。これまで読んでくれてありがとう!

4

1 に答える 1

2

例外をグローバルに処理することは、エラーのログ記録やアプリケーションの正常な終了など、特定のタスクにのみ適しています。

他のすべての場合は、最も適切な場所で例外を処理することをお勧めします。たとえば、アプリからWebサービス呼び出しを行い、サービスが利用できない場合は、グローバルにキャッチするのではなく、Webサービス呼び出しを行う例外を処理する必要があります。これにより、コードの可読性が向上します。また、例外が発生した場所に関する情報がほとんどないため、グローバルレベルで適切なことを行うのは実用的ではありません。(もちろん、スタックトレースはありますが、プログラムによる操作にはすぐには利用できません)

ただし、 @ Jesseのコメントにも示されているように、AppDomain.UnhandledExceptionにハンドラーをアタッチすることで、アプリケーション全体の例外ハンドラーを追加できます。

于 2012-12-08T15:07:39.660 に答える