我想在ASP.NET应用程序中处理所有未捕获的异常。我想向用户显示自定义UI,但不要重定向它们(因此URL将是产生异常的原始URL)。我也有ELMAH由最终用户配置(好吧,最终管理员,但不是我)。 Elmah为Application.Error
事件附加了一个处理程序,并将其记录在那里。
我现在有两个可能的地方来处理错误并生成输出Application_Error
和Application_EndRequest
。逻辑位置为Application_Error
,但这有两个问题:
ClearError()
删除异常,ASP.NET将使用它自己的默认输出替换我的输出。ClearError()
删除它,那么ELMAH可能不会得到异常,因为事件处理程序执行顺序是未定义的。我检查过Application_EndRequest
错误仍然存在,所以我可以在那里做,但这感觉有点......错了。这样做可以惹麻烦吗?