web-dev-qa-db-ja.com

elmahはキャッチされた例外も処理しますか

[〜#〜] elmah [〜#〜] 例外がアプリケーションにバブルアップしなくても、ログに記録されますか?例外が発生したときにメッセージをポップアップし、それでも例外をログに記録したいのですが。現在、私はすべてをtry catchブロックに入れてメッセージを吐き出しているが、これは退屈になる。

54
Chris Westbrook

ELMAHが更新され、 Signaling という新機能がサポートされるようになりました。

これにより、例外をELMAHにログに記録しながら、必要に応じて例外を処理できます。

try
{
    int i = 5;
    int j = 0;
    i = i / j; //Throws exception
}
catch (Exception ex)
{
    MyPersonalHandlingCode(ex);
    ErrorSignal.FromCurrentContext().Raise(ex); //ELMAH Signaling
}

例外を再スローすると、アプリケーションのフローを追跡することが困難になるため、悪い習慣になる可能性があります。何らかの方法でエラーを処理することを意図していて、単にそれを文書化したい場合は、シグナリングを使用する方がはるかに優れたアプローチです。

ELMAHのDotNetSlackers によるこの優れたガイドをチェックしてください。

129
Michael La Voie

フィルタは、この問題を処理するための最もクリーンな方法です。ここでこのソリューションを確認してください https://stackoverflow.com/a/5936867/965935

6
Josh C