A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘旺 中级黑马   /  2012-7-23 14:28  /  1642 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try...catch...finally和using之间是否存在细微差别?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

正序浏览
try{}//获取并使用资源,如:代码抛出了一个错误(使用throw动作)
catch{}//处理异常情况,将异常传到catch代码块处理
finally{}//释放资源,无论是否有错误被抛出,finally 代码块都会执行
using:定义一个范围,在范围结束时处理对象。当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
try{}
catch{}
以及finally{}是捕获异常;
比如在用户控制台输入时候,需要讲用户输入的内容转换成int类型的时候,就得用这个异常处理机制;

Using (){}是处理完后进行资源释放的,这个在实现了IDisposable 接口的对象中用到了,比如在链接数据库的时候,就得用到这个进行资源的释放。
  

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
try...catch...finally:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源。
using:using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
1,using的使用和try-catch-finaly的相似之处就在于finaly代码域调用Disposable方法效果一样;
2,using里面也是需要try的,只是他代替了finally的左右而以。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马