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);
            }
        }
  • 相关阅读:
    博客园特效页脚保存
    go channel
    goland 注册
    mac安装go环境
    go 结构体与方法
    gin教程
    hihocoder234周 计算不包含黑点的矩形个数
    参考文献的正确姿势
    vscode用法
    使用extract-text-webpack-plugin提取css文件
  • 原文地址:https://www.cnblogs.com/flywing/p/7474166.html
Copyright © 2011-2022 走看看