Spec-Zone .ru
спецификации, руководства, описания, API
След: Именование Java и Интерфейс Каталога
Урок: Именование и Операции Каталога
Именование Исключений
Домашняя страница > Именование Java и Интерфейс Каталога > Именование и Операции Каталога

Именование Исключений

Много методов в пакетах JNDI бросают NamingException, когда они должны указать, что работа, которую требуют, не может быть выполнена. Обычно, Вы будете видеть обертку try/catch вокруг методов, которые могут бросить NamingException:

try {
    Context ctx = new InitialContext();
    Object obj = ctx.lookup("somename");
} catch (NamingException e) {
    // Handle the error
    System.err.println(e);
}

Иерархия Класса исключений

У JNDI есть богатая иерархия исключения, происходящая от NamingException class. Имена class исключений очевидны и перечисляются здесь.

Чтобы обработать определенный подкласс NamingException особенно, Вы ловите подкласс отдельно. Например, следующий код особенно обрабатывает AuthenticationException и его подклассы.

try {
    Context ctx = new InitialContext();
    Object obj = ctx.lookup("somename");
} catch (AuthenticationException e) {
    // attempt to reacquire the authentication information
    ...
} catch (NamingException e) {
    // Handle the error
    System.err.println(e);
}

Перечисления

Операции, такие как Context.list() и DirContext.search() возвращают NamingEnumeration. В этих случаях, если ошибка происходит и не возвращаются никакие результаты, то NamingException или один из его соответствующих подклассов будут брошены в то время, когда метод вызывается. Если ошибка происходит, но есть некоторые результаты, которые будут возвращены, то NamingEnumeration возвращается так, чтобы можно было получить те результаты. Когда все результаты будут исчерпаны, вызывая NamingEnumeration.hasMore() заставит NamingException (или один из его подклассов) быть брошенным, чтобы указать на ошибку. В той точке перечисление становится недопустимым, и больше методов не должно быть вызвано на это.

Например, если Вы выполняете search() и определяете предел количества (n) того, из какого количества ответов, чтобы возвратиться, затем search() возвратит перечисление, состоящее в большинстве результатов n. Если число результатов превысит n, то, когда NamingEnumeration.hasMore() вызывается в течение n+1 времени, SizeLimitExceededException будет брошен. См. Результат граф этого урока для примера кода.

Примеры в Этом Учебном руководстве

Во встроенном примере кода, который встраивается в пределах текста этого учебного руководства, пункты try/catch обычно опускаются ради удобочитаемости. Как правило, потому что только фрагменты кода показывают здесь, только строки, которые непосредственно полезны в иллюстрировании, понятие включаются. Вы будете видеть соответствующие размещения пунктов try/catch для NamingException, если Вы будете смотреть в исходных файлах, которые сопровождают это учебное руководство.

Исключения в javax.naming пакете могут быть найдены здесь.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Именование и Операции Каталога
Следующая страница: Поиск Объект