MVC4 ExceptionContext ExceptionHandled属性没有尝试catch块ELMAH

时间:2014-03-19 21:21:06

标签: c# asp.net-mvc exception-handling try-catch elmah

我正在尝试安装和测试ELMAH的第一次。 我想我已经正确设置了一切。 我知道ELMAH旨在记录未处理的异常。 我使用Visual Studio 2012生成的标准模板MVC 4应用程序

在HomeControler类中,我抛出一个错误,没有尝试和捕获块

public ActionResult About()
{
    // Throw a test error so that we can see that it is handled by Elmah
    // To test go to the ~/elmah.axd page to see if the error is being logged correctly
    throw new Exception("A test exception for ELMAH");

    return View();
}

在我看来,这是一个未经处理的例外。

此外,我使用HandleErrorWithELMAHAttribute类来处理错误。这个结构显示在最初发布在这里的许多ELMAH教程中:

How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?

困扰我的代码是:

public override void OnException(ExceptionContext context)
{
    base.OnException(context);

    var e = context.Exception;
    if (!context.ExceptionHandled   // if unhandled, will be logged anyhow
        || RaiseErrorSignal(e)      // prefer signaling, if possible
        || IsFiltered(context))     // filtered?
        return;

        LogException(e);
}

在if语句中,检查属性contect.ExceptionHanled。 此属性设置为true,因此不会记录抛出的错误。

如果没有try-catch,你能解释为什么它被设置为true。

最诚挚的问候, 塞巴斯蒂安

0 个答案:

没有答案