一、finally的使用和笔试考点
package com.yanqi.task16;
public class ExceptionFinallyTest {
// 笔试考点
public static int test() {
try {
int[] arr = new int[5];
System.out.println(arr[5]);
return 0;
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
return 1;
} finally {
return 2; // 提交结束方法并返回数据
}
}
public static void main(String[] args) {
try {
int ia = 10;
int ib = 0;
System.out.println(ia / ib);
} catch (ArithmeticException e) {
e.printStackTrace();
String str1 = null;
//str1.length(); // 会发生空指针异常
} finally {
System.out.println("无论是否发生异常都记得来执行我哦!"); // 依然是执行
}
System.out.println("Over!"); // 不执行了
System.out.println("----------------------------------------");
int test = test();
System.out.println("test = " + test); // 2
}
}
二、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=57553:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task16.ExceptionFinallyTest
java.lang.ArithmeticException: / by zero
at com.yanqi.task16.ExceptionFinallyTest.main(ExceptionFinallyTest.java:24)
java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at com.yanqi.task16.ExceptionFinallyTest.test(ExceptionFinallyTest.java:9)
at com.yanqi.task16.ExceptionFinallyTest.main(ExceptionFinallyTest.java:38)
无论是否发生异常都记得来执行我哦!
Over!
----------------------------------------
test = 2
Process finished with exit code 0