dan*_*dan 4 exception-handling asp.net-mvc-3
我已经看到两种在ASP.NET MVC 3应用程序中实现全局错误处理的方法.一种方法是通过该Application_Error方法Global.asax.cs.
例如(global.asax中的错误处理):
public class SomeWebApplication : System.Web.HttpApplication {
// ... other methods ...
protected void Application_Error() {
// ... application error handling code ...
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是通过方法中[HandleError]注册的动作过滤器属性RegisterGlobalFilters,再次进入Global.asax.cs.
哪种方法更好?两种方法都有任何明显的缺点吗?
[HandleError]是一种方法,因为它保持一切简单,责任明确.此操作筛选器是特定的ASP.NET MVC功能,因此是处理错误的官方方式.覆盖过滤器以添加自定义功能也非常容易.
Application_Error 是旧的方式,并不真正属于MVC.
[HandleError]只要您记得用它标记控制器(或基本控制器),该属性就可以正常工作.
更新:
创建了一个博客条目:http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net-mvc/