Try...Catch...Finally和Using初认识

在C#的学习之初,就接触到了Try…Catch…Finally 和Using,但是并没有进行对比应用,希望可以用表格对比+实例应用帮助你理解:

对比认识:

对比主要用途
Try…Catch…Finallytry块中获取并使用资源;catch块中处理异常:finally块中释放资源
using作为指令:命名空间创建别名或者导入其他命名空间中定义的类型 ;作为语句:定义范围
对比释放资源捕获异常
Try…Catch…Finallyfinally块中释放资源,需要写代码的人自己释放对象代码catch可以
using作为语句:定义范围,在范围的末尾主动释放对象不能

小毛驴举个栗子

        //该方法对传入的参数进行增删改SQL语句执行
        public int ExecuteNonQuery(string sql)
        {
             int res;
             //就是执行一个数据库操作语句sql并调用打开数据库的方法GET()
            SqlCommand  cmd = new SqlCommand(sql, GET());
            //通过这个ExecuteNonQuery()方法把参数传进去,进行增删改操作
             res = cmd.ExecuteNonQuery();
       
           //如果 数据库状态= 连接
           if (conn.State==ConnectionState.Open )
            {
                 //那么把它关闭
                  conn.Close();
              }  
            return res;
        }

应用Try…Catch…Finally之后:

     //该方法对传入的参数进行增删改SQL语句执行
        public int ExecuteNonQuery(string sql)
        {
             int res;
           try
           { 
            SqlCommand  cmd = new SqlCommand(sql, GET());
             res = cmd.ExecuteNonQuery();
           }
         catch (Exception ex)
            {
                throw ex;
            }
            finally//进行释放资源
            {
                if (conn.State==ConnectionState.Open )
                {
                    conn.Close();//执行数据关闭
                }  
            }
        }

应用Using之后:

 public int ExecuteNonQuery(string sql)
        {
            int res;
            using ( SqlCommand cmd = new SqlCommand(sql, GET())//using 会自己释放资源
            { 
                res = cmd.ExecuteNonQuery();        
            }
            return res;
        }

相信对比一下,你大概就可以理解释放资源了
小毛驴今天先总结到这里,欢迎指正交流!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢美玲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值