以前就知道,try-catch后可以跟一个关键字finally来对发生异常时未来得及处理的事比如关闭资源。但不知道为什么必须把关闭资源这种工作放在finally下面。
今天在Java高级编程这书中学到,即使try语句块中包含return、break、continue此类语句,finally中的语句照样能够执行。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class tryCatchFinally {
/**
* @param args
*/
public static void main(String[] args) {
File file = new File("C://aa.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
return;
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
System.out.println("aaa");
}
}
}
这段代码会输出aaa