Elmah是否处理来自其他图层的未处理异常?

时间:2014-09-10 02:00:34

标签: c# .net asp.net-mvc elmah elmah.mvc

我是Elmah的新手并考虑在项目中实施它。它将是一个ASP.NET MVC + Umbraco + EF Web项目,它将具有多个层(业务,DAL等)。

我对Elmah的兴趣在于它能够处理未处理的异常。

但问题是它是否处理来自其他层(服务,业务,DAL等)的未处理异常,或仅处理Web层(ASP.NET MVC)?

1 个答案:

答案 0 :(得分:2)

ELMAH处理抛回客户端的任何异常。这意味着如果您在MVC层或其他任何地方捕获它们,则不会记录数据层中抛出的异常。您通常不希望较低层的异常最终到达客户端。

ELMAH还支持通过ErrorSignal手动记录错误,如下所示:

try
{
    database.DoSomeStuff();
}
catch (SomeDatabaseException ex)
{
    Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}