1、用法
创建自定义异常过滤类,继承HandleErrorAttribute
public class MyException:HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { //如下代码不可以被删除,所以捕获不到异常 base.OnException(filterContext); //记录日志 //页面跳转 filterContext.Result=new RedirectResult("/Error/400.html"); } }
2、FilterConfig中注册
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { //系统默认的异常处理过滤器,如果使用自定义异常处理,要将如下代码删除 //filters.Add(new HandleErrorAttribute()); filters.Add(new MyException()); }
3、要用的控制器或行为加特性
[MyException] public class HomeController : Controller { //[MyException] public ActionResult Index() { return View(); } }
4、在WebConfig中<ststem.web>节中配置
<system.web> <customErrors mode="On"> </customErrors>
</system.web>