zoukankan      html  css  js  c++  java
  • 【MVC__ExceptionFilter】全局异常处理

    通过实现接口IExceptionFilter

    Global文件添加GlobalFilters.Filters.Add(new ExExceptionFilter());

        public class ExExceptionFilter : IExceptionFilter
        {
            private static ILog log = LogManager.GetLogger(typeof(ExExceptionFilter));
    
            public void OnException(ExceptionContext filterContext)
            {
                log.Error("出现未处理异常", filterContext.Exception);
    
                HttpRequestBase request = filterContext.RequestContext.HttpContext.Request;
                if (request.Headers.AllKeys.Contains("X-Requested-With") && request.Headers["X-Requested-With"].Equals("XMLHttpRequest"))
                {
                    AjaxResult ajaxResult = new AjaxResult(0, "发生错误");
                    ajaxResult.data.Add("Exception", filterContext.Exception.Message);
                    ajaxResult.data.Add("detail", filterContext.Exception.ToString());
                    filterContext.Result = new JsonResult() { Data = ajaxResult };
                }
                else
                {
                    filterContext.Result = new RedirectResult("/Manager/Manager/Error");
                }
                filterContext.ExceptionHandled = true;
                filterContext.HttpContext.Response.Clear();
                //filterContext.HttpContext.Response.StatusCode = 500;
                filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
            }
        }
    
  • 相关阅读:
    ORACLE中的TOP-N查询(TOP-N分析)、分页查询
    ORACLE复杂查询之子查询
    ORACLE复杂查询之连接查询
    利用rand7() 产生rand10()(腾讯)
    汉罗塔1(递归和分治)
    数位dp(不要62)
    数位dp(二进制01问题)
    多重背包
    模拟(所有边权)
    模拟(进制)
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12812188.html
Copyright © 2011-2022 走看看