Чтобы быть несколько тупым: использовать обработку исключений.
Учтите это, перед исключениями (или, прежде чем разработчик поймет, как правильно использовать обработку исключений), программисты будут возвращать коды ошибок, такие как -1 или null
если что-то «пошло не так».Имея это в виду, как вы могли бы сказать что-то нескольким методам в прошлом, что они потерпели неудачу (например, какой-то метод ввода-вывода низкого уровня в большом API потерпел неудачу)?Вы можете либо связать много возвращаемых null
с / или -1 вместе, либо просто сгенерировать исключение, чтобы оно мигрировало обратно туда, где его должно быть перехвачено, даже самой JVM, если это необходимопоскольку это исключение может быть чем-то, из чего вы не можете восстановить.
Таким образом, вы, в принципе, сбросили бы исключение, если вы не можете написать логику перехвата, которая действительно может восстановиться из брошенного исключения.Это часто случай в Java, потому что Java заставляет вас перехватывать почти все его исключения, так как большинство всего является проверенным исключением.
Что касается повторного броска проверенного против непроверенного ... Часто ясоздаст новое непроверенное исключение (RuntimeExpcetion
) из проверенного исключения обратно в контейнер при выполнении приложений J2EE.Контейнер имеет способ обработки исключений по умолчанию и показывает пользователю страницу ошибки по умолчанию.Это происходит из Аспектно-ориентированной парадигмы.Я также писал о том, как это сделать здесь .