为了账号安全,请及时绑定邮箱和手机立即绑定

如果没有捕获,嵌套尝试是否有任何用途?

如果没有捕获,嵌套尝试是否有任何用途?

慕斯王 2022-10-07 17:02:14
从一本 Java 书籍中发现了以下代码public void writeFile(String fileName, String content){    File file = new File(fileName);    try {        try (PrintWriter output = new PrintWriter(new FileWriter(file))) {          output.println(content);          output.println();          output.println("End of writing");        }        System.out.println("File been written successfully");    } catch (IOException ex) {      ex.printStackTrace(System.out);    }}上面的代码没有任何问题,我根本看不出嵌套try没有定义内部 catch 块的意义。或者这样做有什么我错过的目的吗?修改后的代码:public void writeFile(String fileName, String content){    File file = new File(fileName);    try (PrintWriter output = new PrintWriter(new FileWriter(file))) {        output.println(content);        output.println();        output.println("End of writing");        System.out.println("File been written successfully");    } catch (IOException ex) {      ex.printStackTrace(System.out);    }}
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

内部 try 是 try-with-resources:

try (PrintWriter output = new PrintWriter(new FileWriter(file)))

这意味着,它管理资源 -PrintWriter在执行此尝试中的每个语句后打开它并关闭它。外部尝试用于捕获错误。

Petter Friberg 提出的修改后的代码是等效的。


查看完整回答
反对 回复 2022-10-07
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信