Java Language ArrayIndexOutOfBoundsException


Ejemplo

La ArrayIndexOutOfBoundsException produce cuando se accede a un índice no existente de una matriz.

Las matrices están indexadas en base a cero, por lo que el índice del primer elemento es 0 y el índice del último elemento es la capacidad de la matriz menos 1 (es decir, array.length - 1 ).

Por lo tanto, cualquier solicitud de un elemento de matriz por el índice i tiene que satisfacer la condición 0 <= i < array.length , de lo contrario se ArrayIndexOutOfBoundsException la ArrayIndexOutOfBoundsException .


El siguiente código es un ejemplo simple donde se lanza 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.

Salida:

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

Tenga en cuenta que el índice ilegal al que se accede también se incluye en la excepción ( 2 en el ejemplo); esta información podría ser útil para encontrar la causa de la excepción.


Para evitar esto, simplemente verifique que el índice esté dentro de los límites de la matriz:

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