elmah是否也处理被捕异常

Chr*_*ook 54 .net asp.net elmah exception-handling

ELMAH是否记录了异常,即使它们没有冒泡到应用程序?我想在发生异常时弹出消息并仍然记录异常.目前我已经把所有东西都放在try catch块中并且吐出消息,但这变得乏味.

Mic*_*oie 129

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
}
Run Code Online (Sandbox Code Playgroud)

重新抛出异常可能是一种不好的做法,因为它很难跟踪应用程序的流程.如果您打算以某种方式处理错误并且只想记录错误,那么使用信号是一种更好的方法.

请查看DotNetSlackers在ELMAH上的这本优秀指南

  • 是否可以使用某种属性/过滤器来实现?因为要把这些代码放在每个catch中,我认为这样做很好,有这样的过滤器可以做到这一点. (8认同)

Jos*_*h C 6

过滤器是处理此问题的最简洁方法.在此处查看此解决方案/sf/answers/415580721/

  • 据我所知,过滤器将无法捕获已在try catch块中处理的异常.在这里查看这个答案[link](http://stackoverflow.com/a/21864117/694457). (2认同)