Asp.net mvc asp.net mvc错误处理的最佳实践
我正在寻找一种处理asp.net mvc 2.0或3.0中错误的标准方法Asp.net mvc asp.net mvc错误处理的最佳实践,asp.net-mvc,error-handling,Asp.net Mvc,Error Handling,我正在寻找一种处理asp.net mvc 2.0或3.0中错误的标准方法 404错误处理程序 控制器作用域异常错误处理程序 全局作用域异常错误处理程序 不确定最佳做法,根据您希望如何处理错误,一个简单的解决方案是不使用web.config文件中的customErrors设置吗 为了捕获未处理的错误,我有时使用Global.asax文件中的Application_Error方法 另外,看看这个是对问题“404”部分最详细的回答。尽管它的主要主题是404,但它会让您了解如何将其应用于其他错误类型
- 404错误处理程序
- 控制器作用域异常错误处理程序
- 全局作用域异常错误处理程序
Global.asax
中捕获那些HttpException
s。但在很大程度上,它是一个很好的指南
对于整个MVC应用程序中的任意异常-不要忘记
HandleErrorAttribute
对于控制器范围错误,请尝试使用自定义异常属性,即
public class RedirectOnErrorAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
// Don't interfere if the exception is already handled
if(filterContext.ExceptionHandled)
return;
//.. log exception and do appropriate redirects here
}
}
然后用属性装饰控制器,错误处理应该是您自己的
[RedirectOnError]
public class TestController : Controller
{
//.. Actions etc...
}
但是,如果错误发生在路由上,则没有帮助-即,它首先找不到控制器。为此,请尝试Global.asax中的应用程序错误处理程序,即
protected void Application_Error(object sender, EventArgs e)
{
//.. perhaps direct to a custom error page is here
}
但我不知道这是否是“最佳实践”。确实有效。frier这是个大问题。正如您所期望的,MVC中肯定不支持它。