我是Elmah的新手并考虑在项目中实施它。它将是一个ASP.NET MVC + Umbraco + EF Web项目,它将具有多个层(业务,DAL等)。
我对Elmah的兴趣在于它能够处理未处理的异常。
但问题是它是否处理来自其他层(服务,业务,DAL等)的未处理异常,或仅处理Web层(ASP.NET MVC)?
答案 0 :(得分:2)
ELMAH处理抛回客户端的任何异常。这意味着如果您在MVC层或其他任何地方捕获它们,则不会记录数据层中抛出的异常。您通常不希望较低层的异常最终到达客户端。
ELMAH还支持通过ErrorSignal手动记录错误,如下所示:
try
{
database.DoSomeStuff();
}
catch (SomeDatabaseException ex)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}