为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕神8447489 2018-12-07 03:21:58
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?
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

using跟异常捕获是两码事,异常如果不捕获是层层抛出的,和用不用using没有关系。using是必须实现IDispose接口的类的对象才能这么写的。
查看完整回答
反对 回复 2018-12-09
?
PIPIONE

TA贡献1829条经验 获得超9个赞

using只能用于实现IDispose接口的对象上。内部会将其编译为如下格式 try {        new 对象(); } finnaly {        对象.Dispose(); } 你可以在using里面加try-catch。只是最后编译出来的代码不优雅,也想对于你直接写try-catch-finaly来执行的更低效
查看完整回答
反对 回复 2018-12-09
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

异常还是需要捕获的。
查看完整回答
反对 回复 2018-12-09
  • 3 回答
  • 0 关注
  • 831 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信