Java 语法糖 - try with resource
Java 大约 961 字前提
需要实现AutoCloseable
接口。
示例一
Java 代码
public class Test8 {
public static void main(String[] args) {
try (InputStream is = new FileInputStream("/a.txt")) {
System.out.println(is);
} catch (IOException e) {
e.printStackTrace();
}
}
}
反编译 class
可以看到:
如果出现异常后在catch
中再次进行try
来关闭流,如关闭流出现异常就追加到异常中,最后抛出异常。
如果没有异常则正常close
。
public class Test8 {
public Test8() {
}
public static void main(String[] args) {
try {
FileInputStream is = new FileInputStream("/a.txt");
try {
System.out.println(is);
} catch (Throwable var5) {
try {
is.close();
} catch (Throwable var4) {
var5.addSuppressed(var4);
}
throw var5;
}
is.close();
} catch (IOException var6) {
var6.printStackTrace();
}
}
}
阅读 544 · 发布于 2022-04-26
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
SQL 删除重复记录且保留一条阅读 1238
-
设计模式之模板方法模式阅读 1913
-
IDEA 使用 Swing Explorer 调试 Swing 和 AWT阅读 1674
-
Android 给按钮添加水波纹效果阅读 3825
-
Kubernetes 查看所有 Pod 日志阅读 309
-
MySQL 视图阅读 1780
-
算法每日一题20190708:合并两个有序链表阅读 1716
-
Kubernetes Lens 端口转发报错 Error occurred starting port-forward阅读 173
-
Linux 分析 PHP 进程内存占用阅读 1880
-
JavaScript 获取顶层对象阅读 536