Компилятор Java определяет как Error
, так и RuntimeException
как два специальных дочерних класса Throwable
, чтобы указать тип исключений, которые вы не можете ожидать, и, таким образом, компилятор не может заставить вас обрабатывать его во время компиляции.Любой класс, который расширяет любого из этих двух дочерних элементов (Error
и RuntimeException
), будет наследовать ту же обработку компилятором.
Как правило, вы должны полагаться на исключение времени выполнения для тех вещей, которые вы не можете ожидать во время выполнения, таких как доступ к массиву с использованием индекса, превышающего его емкость.Кроме того, ваше приложение обычно не восстанавливает исключения и ошибки времени выполнения.Вот почему в качестве хорошей практики разработки вы должны полагаться только на них в качестве шаблона по умолчанию для обработки исключений.