首页 > 代码库 > MVC 使用HandleErrorAttribute统一处理异常

MVC 使用HandleErrorAttribute统一处理异常

    HandleErrorAttribute继承自FilterAttribute,且实现了IExceptionFilter接口。

    属于AOP思想的一种实现,MVC的四大筛选器(权限,动作,结果,异常)中的异常处理。

Usage

1.创建自定义异常处理

public class AppHandleErrorAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        var json = new JsonResponse();
        json.success = false;
        var ex = filterContext.Exception;
        //deal custom exception…
        json.message = "系统异常,请联系管理员!";
        string msg = string.Format("系统异常:{0}", ex.Message);
        LogHelper.Error(msg, ex);   //Log4jNet
        
filterContext.ExceptionHandled = true;
        var result = new JsonResult();
        result.Data = json;
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
        filterContext.Result = result;
    }
}
 

2.注册

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new AppHandleErrorAttribute());
    }
}

参考:http://www.cnblogs.com/linjiancun/archive/2010/09/16/1827937.html