ArrayIndexOutOfBoundsException 异常
所述 ArrayIndexOutOfBoundsException
当正被访问的阵列的不存在的索引被抛出。
数组是从零开始索引的,因此第一个元素的索引是 0
,最后一个元素的索引是数组容量减去 1
(即 array.length - 1
)。
因此,索引 i
对数组元素的任何请求必须满足条件 0 <= i < array.length
,否则将抛出 ArrayIndexOutOfBoundsException
。
以下代码是抛出 ArrayIndexOutOfBoundsException
的简单示例。
String[] people = new String[] { "Carol", "Andy" };
// An array will be created:
// people[0]: "Carol"
// people[1]: "Andy"
// Notice: no item on index 2. Trying to access it triggers the exception:
System.out.println(people[2]); // throws an ArrayIndexOutOfBoundsException.
输出:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at your.package.path.method(YourClass.java:15)
请注意,正在访问的非法索引也包含在异常中(示例中为 2
); 此信息可用于查找异常的原因。
要避免这种情况,只需检查索引是否在数组的限制范围内:
int index = 2;
if (index >= 0 && index < people.length) {
System.out.println(people[index]);
}