Найти в Дзене
83 подписчика

🖥 Поговорим про механизм исключений в Java


⏩Непроверяемые исключения. Начнем с проблемы. Далеко не все ошибки можно выявить на этапе компиляции, например обращение к несуществующему индексу в массиве. Подобная ошибка возникнет уже во время работы программы и скорее всего остановит ее выполнение:
int[] items = {1, 2, 3};
System.out.println(items[5]);

Запуск такого кода приведет к выбрасыванию (возбуждению) исключения и прерыванию работы программы. В консоли это будет выглядеть так:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 3
at io.hexlet.Application.main (Application.java:24)

Ошибка содержит не только описание того что произошло, но и указывает на то место, где она возникла включая файл и строку. Это важно для отладки.

Другая похожая ситуация – это деление на ноль, оно тоже приводит к исключению. Такие исключения являются непроверяемыми.

А вот так может выглядеть выкидывание исключений:
throw new RuntimeException("Сообщение об ошибке");

⏩Проверяемые исключения. Проверяемые исключения – это исключения, которые могут возникнуть в любом случае, даже если в программе нет багов. Самое простое – это чтение файла, если файла не существует, то во время его чтения возникнет исключение.

Такое исключение должно быть обработано с помощью конструкции try..catch (как это видно на изображении)


1 минута