2016-08-04 8 views
1

私はC#でWebアプリケーションを開発していますが、特別な例外タイプがあり、その出来事から完全なログを取得する必要があります。もちろん、私はそれを処理してユーザーに特別なメッセージを表示しますか何か。エラーを例外コンストラクタ内に記録するのは良い方法ですか?

問題は、例外のコンストラクタ内でロギングコードを記述するのがよいでしょうか?私は前にこれに似た何かを見たことがないので、これを求めています。事前

+3

いいえ;コンストラクタは副作用を持つべきではありません。 – SLaks

+3

私は、ロギング自体が非常に畳み込まれる例外をスローすることができるので、私は仮定しません –

+0

例外は問題を処理するための最後の防衛線です。いったんコードを破りの可能性があるコードに開くと、その種の例外は例外の目的を無効にします。それらを分離しておくことがベストです。 –

答えて

3

おかげで、短いと良い答えは次のようになります。あなたは懸念の良好な分離を使用してコードを開発したいbecuaseいいえ、あなたはこの道を行くべきではありません:例外処理がログインしていません、したがって、ロギングは例外を構成する一部ではありません。

この例外がコードで処理されない場合は、AppDomain.UnhandledExceptionイベントのような最終チャンス例外ハンドラを使用して、そこにログオンできます。

関連する問題