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中就可以捕获没有处理的异常信息。

  • 相关阅读:
    为了我们自己的利益,请不要去支持番茄花园。
    游戏版本比较的算法[ZZ]
    DXUT框架剖析(9)
    强制删除任意文件以及文件夹
    安全幻想曲2008
    DXUT框架剖析(12)
    DXUT框架剖析(6)
    [Ph4nt0m] [zz]The Emergence Of A Theme
    俄国农民乘法
    写在msn签名上的I'M 计划
  • 原文地址:https://www.cnblogs.com/daniel-niu/p/10313206.html
Copyright © 2011-2022 走看看