首页新闻找找看学习计划

用了Using后,异常就不用捕获了?

0
悬赏园豆:5 [已解决问题] 解决于 2013-05-14 20:07

        SqlCommand cmd = new SqlCommand();

            using (SqlConnection connection = new SqlConnection(connectionString))             {                 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);                 object val = cmd.ExecuteScalar();                 cmd.Parameters.Clear();                 return val;             }

 

为啥很多人都是这样写,那如果里面的语句异常了,异常怎么捕获到?

为什么不再Using里加 try catch?

Dellienware的主页 Dellienware | 初学一级 | 园豆:39
提问于:2013-05-12 15:58
< >
分享
最佳答案
0

using跟异常捕获是两码事,异常如果不捕获是层层抛出的,和用不用using没有关系。using是必须实现IDispose接口的类的对象才能这么写的。

收获园豆:5
呆呆蚁 | 菜鸟二级 |园豆:231 | 2013-05-13 13:49
其他回答(2)
0

using只能用于实现IDispose接口的对象上。内部会将其编译为如下格式

try

{

       new 对象();

}

finnaly

{

       对象.Dispose();

}

你可以在using里面加try-catch。只是最后编译出来的代码不优雅,也想对于你直接写try-catch-finaly来执行的更低效

滴答的雨 | 园豆:3690 (老鸟四级) | 2013-05-12 16:03
0

异常还是需要捕获的。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-05-13 15:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册