代码如下:
public class Test {
public static void main(String[] args) {
int[] x = new int[10];
Random r = new Random();
try {
int pos = r.nextInt(20);
System.out.println(x[pos]);
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println(“Too big”);
e.printStackTrace();
}finally {
System.out.println(“This happens whatever”);
}
}
}
当try语句中出现异常时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)
此外,不管try 和 catch 是否执行,finally里的语句都会执行。