mca*_*s20 3 asp.net logging exception-handling global-asax
如果我只是在我的Web应用程序中记录异常详细信息,我是否真的需要为每个层添加异常处理逻辑?为什么不让它们全部冒出堆栈跟踪到global.asax并将它们记录在那里?
我建议不要在应用程序的任何层使用任何异常处理逻辑,除非:
当然,例外 - 无论是否致命或应该被"忽略" - 都需要记录并通知开发人员.最好通过事件的事件处理程序来处理Application.Error.是的,这可以在Global.asax,但我认为使用基于HTTP模块的方法,健康监测或ELMAH更清洁.
我已经写了一篇关于这个主题的文章,我想向你推荐 - ASP.NET Web应用程序的异常处理建议.以下是摘要中的文章:
我在ASP.NET应用程序中处理异常的建议可以归结为以下准则:
(a)创建并使用有意义的自定义错误页面.
(b)一般而言,不要捕捉例外情况.让它们冒泡到ASP.NET运行时.捕获异常的一些情况包括:
当有一种似乎合理的方法通过执行一些替代逻辑从异常中恢复时,
当应用程序的工作流的外围部分抛出异常时,该异常不应该使整个应用程序脱轨,并且
当您需要通过抛出具有原始异常作为其内部异常的新异常时,在异常中包含其他信息.
(c)将所有异常记录到某些持久性存储中,并使用电子邮件(或其他一些介质)在生产中发生异常时通知开发人员.考虑使用ELMAH或ASP.NET的内置运行状况监控系统来促进此过程.
| 归档时间: |
|
| 查看次数: |
2576 次 |
| 最近记录: |