我知道有很多问题SO about ASP.NET MVC 中的错误处理.
我发现,大多数人都试图通过三种方式实现目标:
创建一个BaseController
并覆盖OnException
method
Using [HandleError]
或自定义异常过滤器。
Application_Error
global.asax.cs 中的事件
前两种方法无法处理所有异常,它们只处理由操作方法/过滤器引发的异常,因此显然第三种方法将是全局异常处理程序的最佳方法。
我的问题是为什么我应该去[HandleError]
方法?它带来什么好处是我无法通过的Application_Error
?
最后,我想采取customErrors
MVC 应用程序中的部分到底严重吗?
注:我的要求是平常的。每当发生异常时,记录它并返回自定义错误页面。自定义错误页面可能会根据状态代码而变化。
最明显的是[HandleError]
允许您在不同的控制器和操作中以不同的方式处理错误。它比你的某种 switch 语句优雅得多Application_Error
处理程序。
另一个好处是[HandleError]
仍然可以访问控制器及其附带的所有 MVC 优点,因此您仍然可以返回View
或调用另一个操作。一旦你摔倒了Application_Error
,你已经输了ControllerContext
除了重定向之外,您实际上别无选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)