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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mytongyong 中级黑马   /  2014-7-12 08:53  /  1424 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try-catch块的try后面可以接参数么?刚刚看到一段代码,没碰到过这种形式,期待大神解答!
  1. public void initPool(String fileName) throws InstantiationException,
  2.                         IllegalAccessException, ClassNotFoundException {
  3.                 try (FileInputStream fis = new FileInputStream(fileName)) {
  4.                         Properties props = new Properties();
  5.                         props.load(fis);
  6.                         for (String name : props.stringPropertyNames()) {
  7.                                 // 每取出一对Key-Value对,就根据valude创建一个对象
  8.                                 // 调用createObject()创建对象,并将对象添加到对象池中
  9.                                 objectPool.put(name, creatObject(props.getProperty(name)));
  10.                         }
  11.                 } catch (IOException e) {
  12.                         // TODO: handle exception
  13.                         System.out.println("读取" + fileName + "异常");
  14.                 }
  15.         }
复制代码

评分

参与人数 1技术分 +2 收起 理由
Doraemon + 2

查看全部评分

5 个回复

倒序浏览
不懂  帮顶了
回复 使用道具 举报
这不是参数吧
回复 使用道具 举报
应该是把代码块分开了,分开捕获代码块异常!
回复 使用道具 举报
本帖最后由 帮帮 于 2014-7-12 12:10 编辑

这是Java7的新特性。
以前我们在用try的时候里面如果有可以关闭的资源的时候都要finally一下close()
但是如果用Java7的话就好办了直接把要关闭的流写在try(..流)中就可以了,不用finally来关闭

所以这个新特性就是为了简化try中关闭流的步骤
同时也是对所有可以关闭的资源的管理
是一种自动资源管理的新特性:自动关闭资源

评分

参与人数 1技术分 +2 收起 理由
Doraemon + 2

查看全部评分

回复 使用道具 举报
帮帮 发表于 2014-7-12 12:09
这是Java7的新特性。
以前我们在用try的时候里面如果有可以关闭的资源的时候都要finally一下close()
但是如 ...

领教了,还是要与时俱进啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马