• asp.net mvc3 异常处理


    在项目中异常处理非常重要,我们在mvc中有人说用application_error事件中处理异常处理 ,但是application_error产生的所所有异常,假如要生成日志的话肯定日志文件会很大,而且要想在程序中application_error能执行必须将默认的HandleErrorAttribute属性注册去除掉,否则将不会执行application_error

    第一种做法:

    protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                //RegisterGlobalFilters(GlobalFilters.Filters);//取消注册以执行application_error事件
                RegisterRoutes(RouteTable.Routes);
            }
    
    protected void Application_Error()
            {
                //异常处理
            }
    

    第二种做法:

    application_start事件中注册一个异常处理

    首先添加一个ExceptionText类,其继承自HandleErrorAttribute(表示一个特性,该特性用于处理由操作方法引发的异常),然后重写HandleErrorAttribute的OnException(在发生异常时调用)方法

     public class ExceptionText : HandleErrorAttribute
        {
            /// <summary>
            /// 触发异常时调用的方法
            /// </summary>
            /// <param name="filterContext"></param>
            public override void OnException(ExceptionContext filterContext)
            {
    
                //处理异常
            }
        }
    

     然后在Global.asax里的RegisterGlobalFilters(默认有)注册一个ExceptionText

      public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new ExceptionText());//注册
                filters.Add(new HandleErrorAttribute());
            }
    

     在Application_Start中调用

      protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                RegisterGlobalFilters(GlobalFilters.Filters);//调用
                RegisterRoutes(RouteTable.Routes);
            }
    
  • 相关阅读:
    BEA WebLogic JRockit的使用和性能调优
    项目调优笔记
    设计资源收集
    2011年推荐WEB在线应用
    Oracle10g调优:Oracle10g AWR使用方法及分析
    谈数据库的性能优化
    EXTJS双击关闭标签代码
    chrome插件API协议(Extensions Context Menu API Proposal)
    ASH Report For AWDDB/awddb
    java内存查看与分析
  • 原文地址:https://www.cnblogs.com/objectboy/p/3057859.html
Copyright © 2020-2023  润新知