Класс ArrayIndexOutOfBoundsException
Класс ArrayIndexOutOfBoundsException - это исключение,
которое наследуется от IndexOutOfBoundsException и
возникает во время выполнения программы (runtime exception),
когда мы пытаемся получить или изменить элемент массива,
используя индекс, который выходит за пределы его длины.
В качестве параметров конструктор этого класса принимает
строку с сообщением об ошибке, которая затем доступна
через метод getMessage.
Массивы в Java индексируются с нуля, поэтому для массива
длиной n допустимыми являются индексы от 0
до n-1. Если индекс отрицательный или больше либо
равен длине массива, выбрасывается данное исключение.
Синтаксис
throw new ArrayIndexOutOfBoundsException();
throw new ArrayIndexOutOfBoundsException("Index out of bounds");
Пример
Давайте попробуем обратиться к элементу массива с индексом, который равен длине массива (то есть на один больше последнего допустимого):
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
}
}
Результат выполнения кода:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
Пример
Давайте обработаем исключение с помощью конструкции
try-catch и выведем понятное сообщение:
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3};
try
{
System.out.println(arr[5]);
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Index out of bounds");
}
}
}
Результат выполнения кода:
"Index out of bounds"
Пример
Давайте проверим длину массива перед обращением, чтобы избежать возникновения исключения:
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3};
int index = 2;
if (index >= 0 && index < arr.length)
{
System.out.println(arr[index]);
}
else
{
System.out.println("Invalid index");
}
}
}
Результат выполнения кода:
3
Смотрите также
-
класс
IndexOutOfBoundsException,
который является родителем данной ошибки -
класс
RuntimeException,
который является родителем всех unchecked-исключений -
конструкция
try,
которая помогает перехватить исключение -
конструкция
catch,
которая обрабатывает пойманное исключение