finally语句块最终都会执行的代码,无论有无异常
当我们在try语句中打开了一些物理资源(磁盘文件/网络连接/数据库连接等等)我们都得在使用完之后,最
终关闭打开的资源.
- finally的两种语法:
- try…finally:此时没有catch来捕获异常,因为此时根据应用场景,我们会抛出异常,自己不处理
- try…catch…finally:自身需要处理异常.最终还得关闭资源.
新建FinallyDemo.java
public class FinallyDemo {
public static void main(String[] args) {
//finally2Return();
int i = finally2Retrun1();
System.out.println(i);
i = finally2Retrun2();
System.out.println(i);
}
private static int finally2Retrun2() {
int a = 1;
try {
return a;
}finally {
++a;
}
}
private static int finally2Retrun1() {
try {
return 1;
}finally {
return 100;
}
}
private static int finally2Return() {
try {
System.out.println(10/0);
return 1;
}catch(Exception e) {
System.out.println("异常");
System.out.println(e);
System.exit(0);
}finally {
System.out.println("关闭资源");
return 100;
}
}
}