Spec-Zone.ru › OpenJDK 27

Класс ReferralException

java.lang.Object
java.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.ReferralException
Все реализуемые интерфейсы:
Serializable
Прямые известные подклассы:
LdapReferralException
public abstract class ReferralException extends NamingException
Этот абстрактный класс используется для представления исключения перенаправления, которое возникает в ответ на перенаправление, например возвращаемое серверами LDAP v3.

Поставщик службы предоставляет подкласс ReferralException, реализуя методы getReferralInfo() и getReferralContext() (а также подходящие конструкторы и/или соответствующие методы «set»).

В следующем примере кода показано, как можно использовать ReferralException.

      while (true) {
          try {
              bindings = ctx.listBindings(name);
              while (bindings.hasMore()) {
                  b = bindings.next();
                  ...
              }
              break;
          } catch (ReferralException e) {
              ctx = e.getReferralContext();
          }
      }
 

ReferralException — абстрактный класс. Конкретные реализации определяют его свойства синхронизации и сериализации.

Параметр среды, переданный методу getReferralContext(), принадлежит вызывающему коду. Поставщик службы не будет изменять этот объект или сохранять ссылку на него, но может сохранить ссылку на его клон.

С версии:
1.3
См. также:
  • Сериализованная форма

Краткое описание полей

Поля, объявленные в классе NamingException

remainingName, resolvedName, resolvedObj, rootException
Модификатор и тип Поле Описание
protected Name remainingName
Содержит оставшуюся часть имени, которая еще не была разрешена.
protected Name resolvedName
Содержит часть имени, которая была успешно разрешена.
protected Object resolvedObj
Содержит объект, до которого удалось разрешить часть имени.
protected Throwable rootException
Содержит исходное исключение, вызвавшее это исключение NamingException.

Краткое описание конструкторов

ReferralException()
ReferralException(String explanation)
Модификатор Конструктор Описание
protected
Создает новый экземпляр ReferralException.
protected
Создает новый экземпляр ReferralException с указанным пояснением.

Краткое описание методов

Модификатор и тип Метод Описание
abstract Context getReferralContext()
Возвращает контекст, в котором следует продолжить выполнение метода.
abstract Context getReferralContext(Hashtable<?,?> env)
Возвращает контекст, в котором следует продолжить выполнение метода, используя свойства среды.
abstract Object getReferralInfo()
Возвращает сведения (например, URL-адреса), связанные с этим перенаправлением.
abstract void retryReferral()
Повторно обрабатывает текущее перенаправление.
abstract boolean skipReferral()
Отменяет перенаправление, которое должно быть обработано.

Методы, объявленные в классе NamingException

appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
Модификатор и тип Метод Описание
void appendRemainingComponent(String name)
Добавляет имя в конец оставшейся части имени.
void appendRemainingName(Name name)
Добавляет компоненты из 'name' в конец оставшейся части имени.
Throwable getCause()
Возвращает причину этого исключения.
String getExplanation()
Возвращает пояснение, связанное с этим исключением.
Name getRemainingName()
Возвращает оставшуюся неразрешенную часть имени.
Name getResolvedName()
Возвращает начальную часть имени, которая была успешно разрешена.
Object getResolvedObj()
Возвращает объект, до которого удалось выполнить разрешение.
Throwable getRootCause()
Возвращает корневую причину этого исключения NamingException, если она есть.
Throwable initCause(Throwable cause)
Устанавливает причину этого исключения в указанное значение.
void setRemainingName(Name name)
Задает поле оставшейся части имени этого исключения.
void setResolvedName(Name name)
Задает поле разрешенного имени этого исключения.
void setResolvedObj(Object obj)
Задает поле разрешенного объекта этого исключения.
void setRootCause(Throwable e)
Записывает корневую причину этого исключения NamingException.
String toString()
Создает строковое представление этого исключения.
String toString(boolean detail)
Создает более подробное строковое представление.

Методы, объявленные в классе Throwable

addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
Модификатор и тип Метод Описание
final void addSuppressed(Throwable exception)
Добавляет указанное исключение к исключениям, подавленным при возникновении этого исключения.
Throwable fillInStackTrace()
Заполняет трассировку стека выполнения.
String getLocalizedMessage()
Создает локализованное описание этого объекта Throwable.
String getMessage()
Возвращает строку подробного сообщения этого объекта Throwable.
StackTraceElement[] getStackTrace()
Предоставляет программный доступ к сведениям о трассировке стека, выводимым методом Throwable.printStackTrace().
final Throwable[] getSuppressed()
Возвращает массив, содержащий все исключения, подавленные, как правило, оператором try-with-resources, при возникновении этого исключения.
void printStackTrace()
Выводит этот объект Throwable и его трассировку в стандартный поток ошибок.
void printStackTrace(PrintStream s)
Выводит этот объект Throwable и его трассировку в указанный поток вывода.
void printStackTrace(PrintWriter s)
Выводит этот объект Throwable и его трассировку в указанный объект PrintWriter.
void setStackTrace(StackTraceElement[] stackTrace)
Задает элементы трассировки стека, которые будут возвращены методом Throwable.getStackTrace() и выведены методами Throwable.printStackTrace() и связанными с ним.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

ReferralException

protected ReferralException(String explanation)
Создает новый экземпляр ReferralException с указанным пояснением. Все остальные поля устанавливаются в null.
Параметры:
explanation — дополнительные сведения об этом исключении. Может иметь значение null.
См. также:
  • Throwable.getMessage()

ReferralException

protected ReferralException()
Создает новый экземпляр ReferralException. Все поля устанавливаются в null.

Подробное описание методов

getReferralInfo

public abstract Object getReferralInfo()
Возвращает сведения (например, URL-адреса), связанные с этим перенаправлением. Программа может изучить или показать пользователю эти сведения, чтобы определить, следует ли продолжать перенаправление, либо определить, какие дополнительные сведения необходимо предоставить для его продолжения.
Возвращает:
Ненулевые сведения, связанные с этим перенаправлением.

getReferralContext

public abstract Context getReferralContext() throws NamingException
Возвращает контекст, в котором следует продолжить выполнение метода. Независимо от того, обнаружено ли перенаправление непосредственно во время операции с контекстом или косвенно, например при перечислении результатов поиска, исключение перенаправления должно предоставлять контекст, в котором можно продолжить операцию. Контекст перенаправления создается с использованием свойств среды контекста, вызвавшего ReferralException.

Для продолжения операции клиентская программа должна повторно вызвать метод с теми же аргументами, что и при исходном вызове.

Возвращает:
Ненулевой контекст, в котором следует продолжить выполнение метода.
Вызывает:
NamingException — если возникло исключение именования. Для продолжения обработки перенаправлений вызовите retryReferral() или skipReferral().

getReferralContext

public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
Возвращает контекст, в котором следует продолжить выполнение метода, используя свойства среды. Независимо от того, обнаружено ли перенаправление непосредственно во время операции с контекстом или косвенно, например при перечислении результатов поиска, исключение перенаправления должно предоставлять контекст, в котором можно продолжить операцию.

Контекст перенаправления создается с использованием env в качестве свойств среды. Этот метод следует использовать вместо перегруженной формы без аргументов, если вызывающему коду необходимо задать другие свойства среды для контекста перенаправления. Например, это может понадобиться, если для создания контекста перенаправления серверу, на который выполняется перенаправление, требуется предоставить другие сведения аутентификации.

Для продолжения операции клиентская программа должна повторно вызвать метод с теми же аргументами, что и при исходном вызове.

Параметры:
env — возможно, null-среда, используемая при получении контекста перенаправления. Если значение равно null, свойства среды использоваться не будут.
Возвращает:
Ненулевой контекст, в котором следует продолжить выполнение метода.
Вызывает:
NamingException — если возникло исключение именования. Для продолжения обработки перенаправлений вызовите retryReferral() или skipReferral().

skipReferral

public abstract boolean skipReferral()
Отменяет перенаправление, которое должно быть обработано. После вызова этого метода следует вызвать getReferralContext, чтобы продолжить обработку других перенаправлений. В следующем фрагменте кода показан типичный пример использования.
 } catch (ReferralException e) {
     if (!shallIFollow(e.getReferralInfo())) {
         if (!e.skipReferral()) {
             return;
         }
     }
     ctx = e.getReferralContext();
 }
Возвращает:
true, если ожидается обработка других перенаправлений; в противном случае — false.

retryReferral

public abstract void retryReferral()
Повторно обрабатывает текущее перенаправление. После вызова этого метода следует вызвать getReferralContext, чтобы повторить текущее перенаправление. В следующем фрагменте кода показан типичный пример использования.
 } catch (ReferralException e) {
     while (true) {
         try {
             ctx = e.getReferralContext(env);
             break;
         } catch (NamingException ne) {
             if (! shallIRetry()) {
                 return;
             }
             // modify environment properties (env), if necessary
             e.retryReferral();
         }
     }
 }

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API