异常过滤器
1.实现了IExceptionFilter接口
2.执行时间
当action方法或action result抛出异常时执行
3.并不是直接实现IExceptionFilter接口
默认实现HandleErrorAttribute类,HandleErrorAttribute类实现了IExceptionFilter接口与FilterAttribute抽象方法
4.异常发生时执行的方法
public virtual void OnException(ExceptionContext filterContext);
//在HandleErrorAttribute类中
//自定义异常过滤器时需重写继承HandleErrorAttribute类后的此方法
5.自定义异常过滤器
public class MyExceptionFilterAttribute:HandleErrorAttribute//实现接口
{
public override void OnException(ExceptionContext filterContext)//重新方法
{
base.OnException(filterContext);
HttpContext.Current.Response.Redirect("/ExceptionController/ExceptionAction"); //跳转到错误提示页面
}
}
6.全局异常过滤器
1.不用添加标签,对全体都起作用
2.在App_Start文件夹下的FilterConfig.cs中注册
3.优先级最低
4.Global.axal文件中需加上
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
示例
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new MyExceptionFilterAttribute());
//每添加一条全局过滤器,增加一行上一行代码
}
}
本文介绍ASP.NET MVC中的异常过滤器,实现方式为继承HandleErrorAttribute类,并重写OnException方法来处理异常。此外,还介绍了如何自定义异常过滤器及全局异常过滤器的配置。
659

被折叠的 条评论
为什么被折叠?



