在stackoverflow偶爾看到的一個關於try()...catch()的用法,通常我們使用try...catch()捕獲異常的,如果遇到類似IO流的處理,要在finally部分關閉IO流,當然這個是JDK1.7之前的寫法了;在
try (創建流對象語句,如果多個,使用';'隔開) {
// 讀寫數據
} catch (IOException e) {
e.printStackTrace();
}
演示代碼,下面的test目錄是不存在的,運行會拋出異常;
-
JDK1.7之前
FileWriter fw = null;
try {
fw = new FileWriter("test\\test.txt");
fw.write("test");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
-
JDK1.7之后
try(FileWriter fw = new FileWriter("test.txt")) {
fw.write("test");
} catch(Exception ex) {
ex.printStackTrace();
}
