РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
709 of 1163 menu

Класс 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,
    которая обрабатывает пойманное исключение
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить