Подтвердить что ты не робот

Возможно ли создать собственное исключенное исключение в Java?

Возможно ли создать собственное исключенное исключение в Java?

В принципе, я хотел бы

  • У меня есть собственный класс исключений, MyUncheckedException
  • Это не заставляет меня обновлять все методы, которые вызывают метод, который генерирует это исключение с потоком собственных throws
4b9b3361

Ответ 1

Да. Расширьте MyUncheckedException из RuntimeException. Однако ниже руководство из документации

Вообще говоря, не бросайте исключение RuntimeException или не создавайте подкласс RuntimeException просто потому, что вы не хотите быть беспокоиться о том, чтобы указать исключения, которые могут бросить ваши методы.

Вот руководство к нижней строке: если клиент может разумно ожидается, что он восстановится после исключения, сделайте это проверенным исключением. Если клиент не может ничего сделать для восстановления из исключения, сделайте его исключенное исключение.

Ответ 2

Да - вывести его из RuntimeException

Убедитесь, что вы делаете это по правильной причине: как правило, исключения во время выполнения указывают на ошибки программирования, а не на ошибки, которые программа может потенциально реагировать каким-либо значимым образом.

Ответ 3

Я думаю, что вы просто хотите подкласс RuntimeException?

Ответ 4

ДА. Согласно эффективной Java -

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

Не рекомендуется использовать исключение без проверки: -

  • Используйте исключения во время выполнения, чтобы указать на ошибки программирования.
  • Если вы считаете, что условие, вероятно, позволит восстановить, используйте проверенное исключение; если нет, используйте исключение времени выполнения. Если не ясно, возможно ли восстановление, возможно, вам лучше использовать исключенное исключение.

Сведения о неконтролированном исключении -

Использовать тег Javadoc @throws для документирования каждого неконтролируемого исключения, которое метод может бросать, но не используйте ключевое слово throw для включения unchecked исключения в объявлении метода.