#if DEBUG_#endif [控制台输出异常信息]

 debug最理想的状态是什么?这个不用我说,那就是defect free,没有bug。所以我们要做到的是尽量防止bug,bug出现后能迅速定位问题所在,修正这个bug。.net提供了很丰富的debug手段,除了一些debug相关的nampespace。常用的有条件编译、try/catch、trace以及断言(Assert)等,如果你能熟练掌握这些手段,综合运用,那么debug将不再是一场恶梦。下面我将分别讲一下这些手段的运用。

 

一、捕捉异常(try / catch /finally)

/// <summary>
        /// 取得数据库连接
        /// </summary>
        /// <param name="a_strDatabase">数据库名</param>
        /// <param name="oa_objConnection">输出参数,空数据库连接</param>
        public void GetConnection(string a_strDatabase , out SqlConnection oa_objConnection)
        {
            oa_objConnection = null ;
            string strConnStr = "";
            try
            {
                strConnStr = "server=" + m_objIni.GetProperty("server") + ";uid="
                    + m_objIni.GetProperty("uid") + ";pwd=" + m_objIni.GetProperty("password")
                    + ";database=" + a_strDatabase ;
                oa_objConnection = new SqlConnection(strConnStr) ;

                oa_objConnection.Open() ;

                //log it
                m_objLog.Write("数据库连接ok") ;
            }
            catch(SqlException e)
            {
                //log it
                m_objLog.Write("数据库连接出错" , e) ;

#if DEBUG
                Console.WriteLine(e.ToString()) ;
#endif//DEBUG
                throw(e) ;
            }
        }

    }//end class
 
二、条件编译

/// <summary>
        /// 初始化
        /// </summary>
        private void Initialize()
        {
            try
            {
                m_objConnManager = new ConnManager(m_strIniFilePath , "./config/newsdata.ini") ;
                log = new Log("./logs/newserver.log") ;
            }
            catch(Exception e)
            {
               
#if DEBUG
                Console.WriteLine("初始化" + e.Message) ;
#endif//DEBUG
                throw(new Exception("初始化" + e.Message)) ;

            }
           

        }

三、断言(Assert)

/// <summary>
        /// 存取m_strID的属性
        /// </summary>
        public string ID
        {
            get
            {
                return this.m_strID ;
            }
            set
            {
#if DEBUG
                //断言
                Debug.Assert(value.Length % 2 == 0 , "分类id长度必须为偶数") ;               
#endif

                this.m_strID = value ;
            }
        }//end method

摘自:http://www.java3z.com/cwbwebhome/article/article2/2325.html?id=908


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值