@PostConstruct и непроверенные исключения - PullRequest
0 голосов
/ 25 октября 2018

Мне трудно обернуть голову вокруг Javadoc для @PostConstruct.В нем говорится:

Если метод генерирует непроверенное исключение, класс НЕ ДОЛЖЕН быть введен в эксплуатацию, кроме случаев, когда EJB-компоненты могут обрабатывать исключения и даже восстанавливать их

В предыдущих версиях Java документы гласили:

Метод НЕ ДОЛЖЕН генерировать проверенное исключение

Последнее требование, похоже, было отброшено.Что означает «Если метод генерирует непроверенное исключение, класс НЕ ДОЛЖЕН быть введен в эксплуатацию»?Должен ли я предпочесть проверенные исключения непроверенным исключениям в этом контексте, или это имеет значение?

Обратите внимание, что мне известен этот подобный вопрос, но Javadoc с тех пор изменился, и мое отсутствие пониманиявокруг сценария unchecked вот что привлекло меня здесь.

1 Ответ

0 голосов
/ 23 ноября 2018

Что означает «Если метод генерирует непроверенное исключение, класс НЕ ДОЛЖЕН быть введен в эксплуатацию»?

Точное поведение зависит от контейнера, управляющего компонентом.

Экземпляр bean-компонента CDI будет отброшен и не использован, что обычно приводит к неудовлетворенной зависимости.К сожалению, я не смог найти никаких ссылок.

Экземпляр EJB будет отброшен, и контейнер откатит любую транзакцию, запущенную контейнером.Проверьте раздел «9.3.3 Исключения из обратных вызовов жизненного цикла AroundConstruct, PostConstruct и PreDestroy» в EJB 3.2 spec .

Следует ли мне предпочитать проверенные исключения в этом контексте или делает этовещество?

@ PostConstruct javadoc запрещает любые проверенные исключения, которые будут выбрасываться из тела аннотированного метода.

...