Вопрос проверяет понимание механизма обработки ошибок и классификации исключений в Java.
В Java исключения делятся на checked и unchecked. Checked-исключения должны быть обработаны явно. Unchecked-исключения возникают во время выполнения и обычно связаны с ошибками в логике программы. Также отдельно выделяют Error, которые представляют критические ошибки JVM.
Исключения в Java имеют чёткую иерархию и назначение.
Исключение — это объект, который сигнализирует о нештатной ситуации во время выполнения программы.
Java использует исключения для управления ошибками, а не коды возврата.
Все исключения наследуются от Throwable.
ExceptionИспользуется для ошибок, которые можно обработать.
Checked exceptions
Unchecked exceptions
Требуют обязательной обработки.
IOException
SQLException
Наследуются от RuntimeException.
NullPointerException
IllegalArgumentException
ErrorКритические ошибки среды выполнения.
OutOfMemoryError
StackOverflowError
Разделение исключений позволяет отличать ожидаемые ошибки от программных дефектов и критических сбоев JVM.