Java中使用getMessage()方法时,同样的代码为什么A的控制台输出:“3”,而B的控制台却输出:“Index 3 out of bounds for length 3” ?

A的代码:

public class ExceptionDemo {
    public static void main(String[] args) {
        System.out.println("开始");
        method();
        System.out.println("结束");
    }

    public static void method() {
        try {
            int[] arr = {1, 2, 3};
            System.out.println(arr[3]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println(e.getMessage());
        }
    }
}

B的代码:

img

A的输出结果:
开始
3
结束

B的输出结果:
开始
Index 3 out of bounds for length 3
结束

数组下表从0开始,int[] arr = {1, 2, 3} 长度3,可用范围是 0,1,2,只有 arr[0] / arr[1] / arr[2] 是合法的

这个应该是jdk版本的问题

什么叫A 的控制台 B 的控制台
输出不一致代码肯定不一致
你这里代码输出肯定是
开始
3
结束
想要b结果
输出语句改成 System.out.println(e);