我见过两种在 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/