Исключения в Java: типы, иерархия и обработка
Исключения в Java
Изучите исключения в Java — понимание ошибок, типов исключений и иерархии, формирующей надежную обработку ошибок.
Исключение — это непредвиденное событие, прерывающее нормальный поток программы, часто приводящее к аварийному завершению.
Исключение может возникнуть по разным причинам, включая:
- Неверный пользовательский ввод
- Сбои устройств
- Сетевые прерывания
- Физические ограничения (например, нехватка дискового пространства)
- Дефекты кода
- Попытка открыть недоступные файлы
Иерархия исключений в Java
Ниже приведена упрощенная схема иерархии исключений Java.

Корнем этой иерархии является класс Throwable. Он разделяется на две основные ветви: Error и Exception.
Ошибки (Errors)
Ошибки представляют невосстанавливаемые условия, такие как нехватка памяти JVM, переполнение стека, несовместимость библиотек и бесконечная рекурсия. Они обычно вне контроля программиста, и попытка их обработать не рекомендуется.
Исключения (Exceptions)
Исключения — это условия, которые программа может перехватить и восстановиться. Когда возникает исключение, JVM создает объект исключения, инкапсулирующий имя, описание и состояние программы в момент события.
В следующем руководстве мы рассмотрим, как обрабатывать эти исключения. А пока изучим две основные категории внутри ветви Exception.
Типы исключений в Java
Ветвь Exception делится на RuntimeException (unchecked) и IOException (checked). Понимание разницы ключево для эффективной обработки ошибок.
1. RuntimeException
RuntimeException возникают из ошибок программирования и не проверяются во время компиляции. Распространенные примеры включают:
- Неправильное использование API —
IllegalArgumentException - Разыменование null —
NullPointerException - Индекс массива за пределами —
ArrayIndexOutOfBoundsException - Деление на ноль —
ArithmeticException
Кратко: если это runtime exception, это часто признак ошибки кода, которую нужно исправить, а не перехватывать.
2. IOException
IOException представляет checked-исключения, которые компилятор заставляет разработчика обрабатывать. Типичные сценарии включают:
- Попытка открыть несуществующий файл —
FileNotFoundException - Чтение за концом файла
Правильная обработка этих checked-исключений необходима для создания устойчивых приложений.
Мы углубимся в техники обработки исключений в следующем руководстве.
java
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Обработка исключений в Java: try, catch, finally, throw и throws
- Java throw vs throws: мастерство обработки исключений с практическими примерами
- Мульти-исключения в Java: перехват нескольких исключений в одном catch блоке
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода