zoukankan      html  css  js  c++  java
  • asp.net mvc全局异常捕获

    通过重写OnException方法形式实现。

    1、自定义异常记录类并继承HandleErrorAttribute类。

    public class HandlerErrorAttribute : HandleErrorAttribute
        {
            public override void OnException(ExceptionContext context)
            {
                base.OnException(context);
                //context.ExceptionHandled = true;
    
                WriteLog(context);
                var url = context.HttpContext.Request.Path;
                var msg =  url + context.Exception.Message;
                new LogApp().WriteDbLog(msg);
            }
    
            private void WriteLog(ExceptionContext context)
            {
                if (context == null)
                    return;
                var log = LogFactory.GetLogger(context.Controller.ToString());
                log.Error(context.Exception);
            }
        }

     2、修改原有FilterConfig文件,使其添加新添加的HandlerErrorAttribute类。

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

    3、Global.asax中注册(默认已注册过滤器)。

     public class MvcApplication : System.Web.HttpApplication
        {
            /// <summary>
            /// 启动应用程序
            /// </summary>
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
            }
        }
  • 相关阅读:
    Spring MVC 教程(比较全的一篇文章了)
    关于F12的有效利用
    论运营工作与小区收垃圾的相似之处
    吴淞炮台湾湿地森林公园半日游
    真正的运营
    今天是入职通联3周年
    甲午年过临海
    购买vps创建账号后无法登录ftp
    prim+BFS
    最小生成树
  • 原文地址:https://www.cnblogs.com/flywing/p/7474166.html
Copyright © 2011-2022 走看看