我正在尝试安装和测试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。
最诚挚的问候, 塞巴斯蒂安