VJA*_*JAI 7 error-handling asp.net-mvc
我知道有很多的问题,在SO有关错误ASP.NET MVC处理.
我知道,大多数人都试图通过三种方式实现目标:
创建BaseController并覆盖该OnException方法
使用[HandleError]或自定义异常过滤器.
Application_Error global.asax.cs中的事件
前两种方法不能处理所有异常,它们只是由动作方法/过滤器引发的,所以显然第三种方法将成为全局异常处理程序的最佳方法.
我的问题是为什么我应该[HandleError]采取措施?它带来了什么好处,我无法通过Application_Error?
最后,我是否想要customErrors在MVC应用程序中认真对待该部分?
注意:我的要求很平常.每当发生异常时,请记录它并返回自定义错误页面.自定义错误页面可能会根据状态代码而更改.
最明显的是[HandleError]允许您在不同的控制器和操作中以不同方式处理错误.它比你的Application_Error处理程序中的某种switch语句更优雅.
另一个好处是[HandleError]仍然可以访问控制器及其附带的所有MVC优点,因此您仍然可以返回View或调用另一个操作.一旦你跌倒了Application_Error,你就输了ControllerContext,除了重定向之外,你没有真正的选择.