從一本 Java 書(shū)籍中發(fā)現(xiàn)了以下代碼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); }}上面的代碼沒(méi)有任何問(wèn)題,我根本看不出嵌套try沒(méi)有定義內(nèi)部 catch 塊的意義?;蛘哌@樣做有什么我錯(cuò)過(guò)的目的嗎?修改后的代碼: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貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
內(nèi)部 try 是 try-with-resources:
try (PrintWriter output = new PrintWriter(new FileWriter(file)))
這意味著,它管理資源 -PrintWriter
在執(zhí)行此嘗試中的每個(gè)語(yǔ)句后打開(kāi)它并關(guān)閉它。外部嘗試用于捕獲錯(cuò)誤。
Petter Friberg 提出的修改后的代碼是等效的。
添加回答
舉報(bào)
0/150
提交
取消