Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
Исключения, выбрасываемые Enterprise-бинами, делятся на две категории: системные и прикладные.
Системное исключение указывает на проблему с сервисами, которые поддерживают приложение. Например, невозможно получить соединение с внешним ресурсом или не найден инъецированный ресурс. Если возникает проблема системного уровня, ваш Enterprise-бин должен выбросить javax.ejb.EJBException
. Поскольку EJBException
является дочерним классом RuntimeException
, не обязательно указывать его в предложении throws
объявления метода. Если выдаётся системное исключение, контейнер EJB может уничтожить объект компонента. Следовательно, системная исключительная ситуация не может быть обработана клиентской программой компонента, а требует вмешательства системного администратора.
Исключение приложения сигнализирует об ошибке в бизнес-логике Enterprise-бина. Исключения приложений, как правило, являются исключениями, которые вы сами кодировали, например, BookException
, создаваемое бизнес-методами примера CartBean
. Когда Enterprise-бин генерирует исключение приложения, контейнер не переносит его в другое исключение. Клиент должен иметь возможность обрабатывать любое исключение приложения, которое он получает.
Если в транзакции возникает системное исключение, контейнер EJB откатывает транзакцию. Однако, если исключение приложения выдаётся в транзакции, контейнер не откатывает транзакцию.
Назад | Вперёд | Содержание |