try后面可以跟catch或finally,跟catch是为了捕获异常,而跟finally是不管出现什么情况都会执行finally里的代码

解决方案 »

  1.   

    你可以这样用,让using释放con            using (SqlConnection con = new SqlConnection())
                {
                    try
                    {
                        con.Open();
                    }
                    catch (Exception ex)
                    {
                        ex.Message;
                    }
                    finally
                    {
                        con.Close();
                    }
                }
      

  2.   

    using( Sqlconncetion con  = new  Sqlconnection(strConn))
     {
     
           con.open();
            con.close();
     }
     
    //最终等价于
     
    {
         sqlConnection con = new Sqlconnection(strConn);
       try{
               con.open();
               con.close();
     }
     finally
     {
        con.Dispose()
     }
     }
     谁告诉你的????这根本不一样好么...
      

  3.   

    如你所想~是的~
    异常本来就是一层一层往外抛的
    遇到有捕获异常有处理就被处理了如果没有~指到最外层还没有处理就中断程序catch(Exception ex)//你这里是吃掉异常~比没有写catch还恐怖~!
    {
        e.Message;
    }
      

  4.   

    using (SqlConnection con = new SqlConnection())
                {
                    try
                    {
                        con.Open();
                    }
                    catch (Exception ex)//这里和没有处理异常一样~所以干脆不要写
                    {
                        ex.Message;
                    }
                    finally
                    {
                        con.Close();//using 本来就会调用con.Dispose()而Dispose会调用Close()所以也不用写
                    }
                }using本来就是语法糖,就是用来少写代码的,#3楼的这种做法反而增加代码
    看你给#3最多分,但希望你写代码的时候不要按他的例子写
      

  5.   

    你对using的说法,我表示同意,但是请你仔细看看或者编译一下我那段代码,单单 ex.Message;这句能编译通过么?那只是一句伪代码而已,只是提示在这里记录异常,但你说“这里和没有处理异常一样~所以干脆不要写”反倒让人笑了吧!
      

  6.   

    你对using的说法,我表示同意,但是请你仔细看看或者编译一下我那段代码,单单 ex.Message;这句能编译通过么?那只是一句伪代码而已,只是提示在这里记录异常,但你说“这里和没有处理异常一样~所以干脆不要写”反倒让人笑了吧!try{
    using( Sqlconncetion con  = new  Sqlconnection(strConn))
    {
           con.open();
    }
    }
    catch(Exception ex)
    {
        e.Message;
    }我是说你这写法还好过他的~
    而且既然你打算用处理异常了~ 那么就不要用using了