從一本 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 提出的修改后的代碼是等效的。
添加回答
舉報
0/150
提交
取消