Ответ
Корнем всей иерархии исключений в Java является класс java.lang.Throwable. Все ошибки и исключения являются его наследниками.
Иерархия:
Throwable
/
Error Exception
/
RuntimeException Checked Exceptions (e.g., IOException)
Ключевые подклассы Throwable:
Error— указывает на серьезные проблемы, с которыми приложение обычно не должно пытаться справиться (например,OutOfMemoryError,StackOverflowError).Exception— базовый класс для проблем, которые разумная программа может захотеть перехватить.RuntimeException(Unchecked) — исключения, которые не обязаны быть объявлены или перехвачены (например,NullPointerException,IllegalArgumentException).- Checked Exceptions — исключения, которые должны быть либо объявлены в сигнатуре метода (
throws), либо обработаны в блокеtry-catch(например,IOException,SQLException).
Важные методы класса Throwable:
String getMessage()— возвращает сообщение об ошибке.void printStackTrace()— печатает трассировку стека в стандартный поток ошибок.Throwable getCause()— возвращает исключение-причину (используется при обертывании исключений).
Пример:
try {
throw new IllegalArgumentException("Неверный аргумент");
} catch (RuntimeException e) { // Ловим unchecked исключение
System.out.println(e.getMessage()); // "Неверный аргумент"
// e.getCause() вернет null, так как причина не задана
}