Ответ
Все исключения в Java наследуются от класса Throwable. Основные ветви иерархии:
- Error – фатальные ошибки (например,
OutOfMemoryError), которые обычно не перехватываются - Exception – проверяемые исключения (checked exceptions)
- RuntimeException – непроверяемые исключения (unchecked exceptions)
Пример:
// Пользовательское исключение
class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
Ключевые особенности:
- Проверяемые исключения (
Exception) требуют обработки черезtry-catchили объявления в сигнатуре метода (throws) - Непроверяемые (
RuntimeExceptionи его наследники) можно не обрабатывать Errorи его наследники обычно указывают на серьезные проблемы JVM