对于 try — catch 语句,一旦出现异常,后于的语句无法执行
public static void main(String[] args) {
try{
int[] a = new int[3];
System.out.println(a[4]); //出现异常的语句
System.out.println("后续代码");
}catch(Exception e) {
System.out.println(e);
}
}
程序运行输出的结果,可见后续代码并没有被执行
java.lang.ArrayIndexOutOfBoundsException: 4
如果需要在出现异常后,仍执行某些必须的后续代码,那么需要 finally
1.finally 语法
finally 必须配合 try — catch 使用
try{
//可能出现异常的代码
}catch(异常对象){
//处理异常对象
}finally{
//无论是否出现异常,都要执行的代码块;
}
finally 中的代码永远被执行,如果有 return ,那么永远 return 该内容
2.例子
对于 finally 中的代码块,无论是否出现异常,都会执行
public static void main(String[] args) {
try{
int[] a = new int[3];
System.out.println(a[4]); //出现异常的语句
System.out.println("后续代码");
}catch(Exception e) {
System.out.println(e);
}finally {
System.out.println("finally 中的后续代码");
}
}
程序执行输出的结果
java.lang.ArrayIndexOutOfBoundsException: 4
finally 中的后续代码