Класс IndexOutOfBoundsException
Класс IndexOutOfBoundsException является подклассом
RuntimeException
и представляет собой unchecked-исключение. Оно выбрасывается,
когда числовое значение индекса выходит за допустимые границы
коллекции, массива или строки. Например, при попытке получить
элемент по индексу, который меньше нуля или больше либо равен
размеру структуры данных. В первом параметре конструктора можно
передать сообщение об ошибке, во втором - причину исключения
(другое исключение).
Синтаксис
new IndexOutOfBoundsException()
new IndexOutOfBoundsException(String message)
new IndexOutOfBoundsException(String message, Throwable cause)
Пример
Давайте попробуем обратиться к элементу списка по индексу, который превышает его размер, и посмотрим на возникшее исключение:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c");
try
{
String res = list.get(5);
System.out.println(res);
}
catch (IndexOutOfBoundsException e)
{
System.out.println("Caught: " + e);
}
}
}
Результат выполнения кода:
"Caught: java.lang.IndexOutOfBoundsException: Index 5 out of bounds for length 3"
Пример
Давайте вызовем метод substring с некорректным
начальным индексом, чтобы получить ошибку выхода за границы:
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
try
{
System.out.println(str.substring(10));
}
catch (IndexOutOfBoundsException e)
{
System.out.println("Caught: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Caught: begin 10, end 5, length 5"
Пример
Давайте создадим и выбросим исключение
IndexOutOfBoundsException вручную с собственным
сообщением:
public class Main
{
public static void main(String[] args)
{
try
{
throw new IndexOutOfBoundsException("Custom index error");
}
catch (IndexOutOfBoundsException e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
"Custom index error"
Смотрите также
-
класс
ArrayIndexOutOfBoundsException,
который возникает при выходе за границы массива -
класс
RuntimeException,
который является родителем для непроверяемых исключений -
метод
getMessage,
который возвращает текст сообщения об ошибке -
метод
checkIndex,
который проверяет корректность индекса