Ответ
Все исключения и ошибки в Java являются наследниками класса java.lang.Throwable. Это корневой класс всей иерархии.
Структура наследования:
Throwable
/
Error Exception
/
RuntimeException Проверяемые исключения (Checked)
(IOException, SQLException и др.)
Ключевые ветви:
Error: Непроверяемые (unchecked) критические ошибки, которые обычно указывают на проблемы среды выполнения JVM (например,OutOfMemoryError,StackOverflowError). Их, как правило, не следует обрабатывать.Exception: Базовый класс для большинства исключительных ситуаций в приложении.RuntimeExceptionи его наследники: Непроверяемые исключения (unchecked), возникающие из-за логических ошибок в коде (например,NullPointerException,IllegalArgumentException). Компилятор не требует их обязательного объявления или обработки.- Проверяемые исключения (Checked): Все остальные наследники
Exception. Компилятор требует либо обработать их в блокеtry-catch, либо объявить в сигнатуре метода с помощьюthrows.
Пример создания собственных исключений:
// Проверяемое исключение
class ValidationException extends Exception {
public ValidationException(String message) {
super(message);
}
}
// Непроверяемое исключение
class BusinessLogicException extends RuntimeException {
public BusinessLogicException(String message) {
super(message);
}
}