黑马程序员技术交流社区

标题: try-catch块的try后面可以接参数么? [打印本页]

作者: mytongyong    时间: 2014-7-12 08:53
标题: try-catch块的try后面可以接参数么?
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.         }
复制代码


作者: mirror    时间: 2014-7-12 10:25
不懂  帮顶了
作者: 月明星稀    时间: 2014-7-12 10:44
这不是参数吧
作者: 晴儿    时间: 2014-7-12 11:34
应该是把代码块分开了,分开捕获代码块异常!
作者: 帮帮    时间: 2014-7-12 12:09
本帖最后由 帮帮 于 2014-7-12 12:10 编辑

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

所以这个新特性就是为了简化try中关闭流的步骤
同时也是对所有可以关闭的资源的管理
是一种自动资源管理的新特性:自动关闭资源
作者: mytongyong    时间: 2014-7-13 05:53
帮帮 发表于 2014-7-12 12:09
这是Java7的新特性。
以前我们在用try的时候里面如果有可以关闭的资源的时候都要finally一下close()
但是如 ...

领教了,还是要与时俱进啊!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2