2015-06-30 6 views
1

Я заменил все мои JNDI-запросы с помощью метода JNDI.lookup(), потому что он казался удобным, имел дело с динамическими типами возврата и т. Д. Все было замечательно ... но теперь я только заметил, что проверенные исключения, которые я должен был поймать больше нет.Что означает, что в объектах JNDI.lookup отсутствует исключение для исключения NamingException?

Я предполагал, что это было потому, что оно просто вернуло бы нуль, если переменная JNDI не существовала, но это не так. Теперь он просто выбрасывает исключение.

Любая идея, почему? Есть ли способ просто вернуть null для несуществующих переменных?

Я создал ошибку для этого на сайте omnifaces: https://github.com/omnifaces/omnifaces/issues/141

Не уверен, если это предназначено поведение или нет.

ответ

1

Есть ли способ просто вернуть null для несуществующих переменных?

Он делает это для NameNotFoundException. Проблема здесь не в OmniFaces, а в среде, которая была GlassFish 4.1 в вашем конкретном случае. Неожиданно он обернул NameNotFoundException в другом NamingException, в результате чего базовый NameNotFoundException проскользнул и обходил условие return null.

Это было устранено с помощью утилиты Exceptions#is() по методу this comment. Он будет доступен в OmniFaces 2.2.

 Смежные вопросы

  • Нет связанных вопросов^_^