Ответсообщение недоступно
Не совсем. У Java там есть разделение на проверяемые и непроверяемые исключения. Проверяемые – это те, которые ты должен явно обработать. Если ты этого не сделаешь, код просто не скомпилируется. Непроверяемые – это как раз-таки те самые ошибки в рантайме, которые ты можешь обрабатывать, можешь нет, ну и вот они как раз могут вылетать наружу, и это в целом нормально, если приложению будет лучше упасть, чем продолжать работать «как-нибудь» при такой ошибке