[HandleError] 相对于 Application_Error 的优点

2024-01-27

我知道有很多问题SO about ASP.NET MVC 中的错误处理.

我发现,大多数人都试图通过三种方式实现目标:

  1. 创建一个BaseController并覆盖OnException method

  2. Using [HandleError]或自定义异常过滤器。

  3. Application_Errorglobal.asax.cs 中的事件

前两种方法无法处理所有异常,它们只处理由操作方法/过滤器引发的异常,因此显然第三种方法将是全局异常处理程序的最佳方法。

我的问题是为什么我应该去[HandleError]方法?它带来什么好处是我无法通过的Application_Error?

最后,我想采取customErrorsMVC 应用程序中的部分到底严重吗?

注:我的要求是平常的。每当发生异常时,记录它并返回自定义错误页面。自定义错误页面可能会根据状态代码而变化。


最明显的是[HandleError]允许您在不同的控制器和操作中以不同的方式处理错误。它比你的某种 switch 语句优雅得多Application_Error处理程序。

另一个好处是[HandleError]仍然可以访问控制器及其附带的所有 MVC 优点,因此您仍然可以返回View或调用另一个操作。一旦你摔倒了Application_Error,你已经输了ControllerContext除了重定向之外,您实际上别无选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[HandleError] 相对于 Application_Error 的优点 的相关文章

随机推荐