zoukankan      html  css  js  c++  java
  • MVC 全局异常捕获

    /// <summary>
        /// 自定义全局异常捕获
        /// </summary>
        public class ExceptionHelper : FilterAttribute, IExceptionFilter
        {
            /// <summary>
            /// 实现 IExceptionFilter中的 OnException 方法
            /// </summary>
            /// <param name="filterContext"></param>
            public void OnException(ExceptionContext filterContext)
            {
                Exception ex = filterContext.Exception as Exception;
                if (ex != null)
                {
                    filterContext.Controller.ViewBag.UrlRefer = filterContext.HttpContext.Request.UrlReferrer;
                    LogHelper.Error("Filter捕获到未处理异常",ex);            
                    //页面抛出异常信息
                    filterContext.HttpContext.Response.Write(string.Format("系统捕捉到未处理的异常:{0}<br/>", ex.GetType().ToString()));
                    filterContext.HttpContext.Response.Write("Filter 已进行错误处理。");
                }
                filterContext.ExceptionHandled = true;//设置异常已经处理
            }
        }

    自定义一个类,继承 FilterAttribute,IExceptionFilter。实现接口OnException,该接口为程序抛异常时触发。

    在MVC的Filter.config中添加该类。

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
                filters.Add(new ExceptionHelper(), 1);//自定义的验证特性 ExceptionHelper
         }

    这样在MVC中就可以捕获没有处理的异常信息。

  • 相关阅读:
    Django 【第十二篇】Form组件进阶
    Django 【第十一篇】Form组件基础
    前端知识点总结
    vue组件续和前端工程化
    vue组件
    Vue视图下
    Vue实例与渲染
    BootStrap
    jQuery事件与动画
    dom操作 属性操作 样式操作
  • 原文地址:https://www.cnblogs.com/daniel-niu/p/10313206.html
Copyright © 2011-2022 走看看