【MVC】 异常处理
一 . 自定义 HandleErrorAttribute
public class ExceptionLogAttribute : HandleErrorAttribute { /// <summary> /// 触发异常时调用的方法 /// </summary> /// <param name="filterContext"></param> public override void OnException(ExceptionContext filterContext) {
Log(filterContext);
filterContext.Result = new RedirectResult("/Error/Index"); base.OnException(filterContext); } } public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ExceptionLogAttribute()); filters.Add(new HandleErrorAttribute()); } }
二. 重写 Controller OnException 函数
public class BaseController : Controller { protected override void OnException(ExceptionContext filterContext) { filterContext.ExceptionHandled = true; Log(filterContext); filterContext.Result = new RedirectResult("/Error/Index"); } }