Ответ
Возникает неконтролируемое (unchecked) исключение ArrayIndexOutOfBoundsException.
Когда выбрасывается:
- При обращении к отрицательному индексу (например,
arr[-1]). - При обращении к индексу, равному или большему длины массива (например,
arr[arr.length]).
Пример:
int[] numbers = {10, 20, 30};
System.out.println(numbers[5]); // ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 3
Как избежать: Всегда проверяйте индекс перед доступом.
int index = 5;
if (index >= 0 && index < numbers.length) {
System.out.println(numbers[index]);
} else {
System.out.println("Индекс " + index + " выходит за границы массива.");
}
Важно: Это подкласс IndexOutOfBoundsException. Аналогичное исключение для коллекций (например, List) — IndexOutOfBoundsException.
Ответ 18+ 🔞
А, ну ты глянь, какой подарок судьбы — ArrayIndexOutOfBoundsException! Это ж классика, блядь, как Муму у Тургенева, только в мире кода. Чувак, это когда ты такой весь из себя умный, решил к массиву обратиться, а он тебе — «а пошёл ты нахуй, такого индекса у меня нет!».
Когда эта хрень вылезает, как ядрёна вошь из-под воротника:
- Ты лезешь в минус, типа
arr[-1]. Ну, бля, а чего? Может, там секретный элемент? Неа, пиздец. - Или, что чаще, ты пытаешься достать элемент с индексом, который больше или РАВЕН длине массива. Да-да,
arr[arr.length]— это тоже пиздец, потому что нумерация-то с нуля, ёпта! Если длина 3, то последний элемент — этоarr[2]. Аarr[3]— это уже за гранью, в мире духов, блядь.
Смотри, как это красиво обламывается:
int[] numbers = {10, 20, 30};
System.out.println(numbers[5]); // ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 3
Вот и весь сказ. Хотел пятую конфетку из трёх взять. Ну и как, взял? В рот меня чих-пых!
Как не быть таким Герасимом, который топит программу вместо собачки: Проверяй, блядь, индекс, прежде чем лезть! Это не трусость, это здравый смысл, ёпта.
int index = 5;
if (index >= 0 && index < numbers.length) {
System.out.println(numbers[index]); // Всё чики-пуки, заходи
} else {
System.out.println("Индекс " + index + " выходит за границы массива."); // А вот тут, дружок, облом
}
Важный нюанс, чтобы не прослыть полупидором: Это частный случай IndexOutOfBoundsException. Для списков (List) и прочей коллекторской братвы исключение будет называться так же — IndexOutOfBoundsException. Но суть-то одна — лезешь туда, куда не просили, получаешь по ебалу.