java的try-with-resource机制

在java7之后可以使用try(resource1, resource2){...}
这样声明之后,在try{}执行完成之后或者抛异常跳出,都会调用reouce1.close(),resource2.close()。和之前的finally块很像

1 finlly{
2   if(reousce != null) 
3     resource.close
4 }

但是有两点区别:
1. try-with-resource里面的声明的自动释放对象必须实现closable或者autoClosable;
2. finally块中如果抛异常将会把try块中异常给排挤掉;但是twr的方式则直接抛出的是try块的异常,调用close的异常可以通过Throwable.getSuppressed获得。

posted on 2018-04-05 16:44  张叫兽的技术研究院  阅读(501)  评论(0编辑  收藏  举报

导航