Java Language Indice della Matrice Fuori Dai Limiti d'Eccezione

Esempio

L' ArrayIndexOutOfBoundsException viene generata quando si accede a un indice non esistente di un array.

Le matrici sono indicizzate su base zero, quindi l'indice del primo elemento è 0 e l'indice dell'ultimo elemento è la capacità dell'array meno 1 (cioè array.length - 1 ).

Pertanto, qualsiasi richiesta per un elemento dell'array dall'indice i deve soddisfare la condizione 0 <= i < array.length , altrimenti verrà ArrayIndexOutOfBoundsException l' ArrayIndexOutOfBoundsException .


Il seguente codice è un semplice esempio in cui viene lanciata una 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.

Produzione:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at your.package.path.method(YourClass.java:15)

Si noti che l'indice illegale a cui si accede è anche incluso nell'eccezione ( 2 nell'esempio); questa informazione potrebbe essere utile per trovare la causa dell'eccezione.


Per evitare ciò, è sufficiente verificare che l'indice sia entro i limiti dell'array:

int index = 2;
if (index >= 0 && index < people.length) {
    System.out.println(people[index]);
}