[〜#〜] elmah [〜#〜] 例外がアプリケーションにバブルアップしなくても、ログに記録されますか?例外が発生したときにメッセージをポップアップし、それでも例外をログに記録したいのですが。現在、私はすべてをtry catchブロックに入れてメッセージを吐き出しているが、これは退屈になる。
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 によるこの優れたガイドをチェックしてください。
フィルタは、この問題を処理するための最もクリーンな方法です。ここでこのソリューションを確認してください https://stackoverflow.com/a/5936867/965935