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]);
}