asp.net-mvc-3 - ASP.NET MVC 中全局错误/异常处理的最佳实践是什么?

标签 asp.net-mvc-3 exception-handling

我见过两种在 ASP.NET MVC 3 应用程序中实现全局错误处理的方法。一种方法是通过 Application_Error Global.asax.cs 中的方法.

例如( Error Handling in global.asax ):

public class SomeWebApplication : System.Web.HttpApplication {

  // ... other methods ...

  protected void Application_Error() {
    // ... application error handling code ...
  }
}

另一种方法是通过 [HandleError]RegisterGlobalFilters 中注册的操作过滤器属性方法,再次在 Global.asax.cs .

哪种方法更好?这两种方法有什么明显的缺点吗?

最佳答案

[HandleError]是要走的路,因为它使一切变得简单且责任明确。此 action filter是特定的 ASP.NET MVC功能,因此是处理错误的官方方式。覆盖过滤器以添加自定义功能也很容易。
Application_Error是旧的方法,并不真正属于 MVC。
[HandleError]只要您记得用它标记您的 Controller (或基本 Controller ),属性就可以正常工作。

更新 :

创建了一个博客条目:http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net-mvc/

关于asp.net-mvc-3 - ASP.NET MVC 中全局错误/异常处理的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511752/

相关文章:

ruby - "exception class/object expected"ruby​​ 无法挽救哈希对象

asp.net - ASP.NET MVC 中的 ViewModel 和 Model 之间的主要区别是什么?

c# - 用jquery ajax和MVC3发布表单的正确方法是什么?

java - 使用 ExceptionResolver 捕获 Spring MVC DispatcherServlet 异常

.net - 从调用方获取堆栈跟踪?

整个类的 PHP Try Catch

c# - ASP.NET MVC 3 中的@Html.ActionLink

asp.net-mvc-3 - 从自定义授权属性访问角色

asp.net-mvc-3 - ASP.NET MVC 3 WebGrid - 条件列格式

exception-handling - 应该如何处理 ColdFusion 异常和 404 错误?