zoukankan      html  css  js  c++  java
  • Asp.net MVC增加全局异常捕获500、404错误

    在Global.asax文件中

    可以看到系统异常处理的捕获:

            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
            }

    我们需要重写这个捕获方法

    1、重写HandleErrorAttribute

        /// <summary>
        /// 错误日志(Controller发生异常时会执行这里)
        /// </summary>
        public class AppHandleErrorAttribute : HandleErrorAttribute
        {
            /// <summary>
            /// 异常
            /// </summary>
            /// <param name="filterContext"></param>
            public override void OnException(ExceptionContext filterContext)
            {
                //使用log4net或其他记录错误消息
                Exception Error = filterContext.Exception;
                string Message = Error.Message;//错误信息
                string Url = HttpContext.Current.Request.RawUrl;//错误发生地址
          
                filterContext.ExceptionHandled = true;
                filterContext.Result = new RedirectResult("/SiteStatus/HtmlError500/?q=" + Message);//跳转至错误提示页面
            }
        }

    2、使用重写后的HandleAttribute
    更改系统注册方法:

            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new AppHandleErrorAttribute());
            }

    以上方法就完成了对500错误异常的捕获。

    若还需要捕获404错误,则可以使用web.config文件来设置,因为404可以无需记录详细消息。

        <customErrors mode="On" >
          <error statusCode="404" redirect="~/SiteStatus/HtmlError404?404"/>
        </customErrors>

    相应的Controller和View需自己加上即可。

  • 相关阅读:
    【原】Windows下常用命令
    【转】Samba配置文件详解
    JS笔记-选项卡的重用
    canvas.toDataURL()跨域问题
    Adobe Air 写文件如何换行
    AS3多线程快速入门(三):NAPE物理引擎+Starling[译]
    AS3多线程快速入门(二):图像处理[译]
    AS3多线程快速入门(一):Hello World[译]
    使用FileStream对象读写文件(转)
    Adobe Air写配置文件
  • 原文地址:https://www.cnblogs.com/lidingwen/p/2882139.html
Copyright © 2011-2022 走看看