Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Иерархия исключений в Java
Иерархия исключений в Java — это структурированная система классов, которая определяет различные типы ошибок и исключительные ситуации, возникающие во время выполнения программы.
Основная иерархия
Throwable
├── Error
│ ├── OutOfMemoryError
│ ├── StackOverflowError
│ ├── VirtualMachineError
│ └── ...
└── Exception
├── IOException
├── SQLException
├── RuntimeException
│ ├── NullPointerException
│ ├── ClassCastException
│ ├── ArrayIndexOutOfBoundsException
│ ├── ArithmeticException
│ └── ...
└── ...
Основные категории
Throwable — базовый класс для всех ошибок и исключений. Все, что может быть выброшено оператором throw, должно наследоваться от Throwable.
Error — серьёзные проблемы, которые обычно не должны перехватываться приложением:
- OutOfMemoryError — недостаточно памяти
- StackOverflowError — переполнение стека вызовов
- VirtualMachineError — критические ошибки JVM
Ошибки указывают на проблемы с JVM или системными ресурсами.
Exception — исключительные ситуации, которые приложение должно обрабатывать:
- Checked exceptions — проверяемые исключения (наследники Exception, но не RuntimeException)
- Unchecked exceptions (RuntimeException и потомки) — непроверяемые исключения
Проверяемые vs непроверяемые исключения
// Checked Exception — должен перехватить или объявить throws
public void readFile(String path) throws IOException {
FileReader reader = new FileReader(path);
// ...
}
// Unchecked Exception — можно не перехватывать
public void divide(int a, int b) {
int result = a / b; // ArithmeticException при b == 0
}
// Правильная обработка
try {
readFile("file.txt");
} catch (IOException e) {
System.err.println("Ошибка чтения файла: " + e.getMessage());
}
Практическое значение
Иерархия исключений позволяет:
- Обрабатывать различные ошибки специализированным образом
- Использовать полиморфизм для перехвата групп исключений
- Отличать критические ошибки от обработанных ошибок
- Создавать собственные исключения, наследуя от Exception
Понимание иерархии — ключ к правильной обработке ошибок в Java.