Spec-Zone.ru › OpenJDK 27

Класс ClassNotLoadedException

java.lang.Object
java.lang.Throwable
java.lang.Exception
com.sun.jdi.ClassNotLoadedException
Все реализуемые интерфейсы:
Serializable
public class ClassNotLoadedException extends Exception
Выбрасывается, чтобы указать, что запрошенный класс ещё не был загружен подходящим загрузчиком классов.

Из-за отложенной компоновки классов, выполняемой многими виртуальными машинами, поле или переменная могут быть видны в программе до загрузки связанного с ними класса. Пока класс не загружен, доступна только строка сигнатуры. Если из JDI предпринимается попытка задать значение такого поля или переменной, выполнить соответствующую проверку типов невозможно, поскольку целевой класс не загружен. То же относится к классу элементов массива.

В данном случае не рекомендуется решать эту проблему, пытаясь загрузить класс на лету. Если отладчик загружает класс вместо того, чтобы дождаться его загрузки в обычном порядке, возникают две проблемы.

  • Нельзя гарантировать, что запуск соответствующего загрузчика классов не приведёт к взаимной блокировке при загрузке класса. Загрузчики классов могут состоять из произвольного кода на языке программирования Java, а методы загрузки классов обычно синхронизированы. Большинство операций отладчика выполняется, когда потоки приостановлены. Если другой поток приложения приостановлен внутри того же загрузчика классов, весьма вероятна взаимная блокировка.
  • Изменение обычного порядка загрузки классов может как скрыть, так и выявить ошибки в приложении. Ненавязчивый отладчик должен стремиться не изменять поведение отлаживаемого приложения.
Чтобы избежать этих потенциальных проблем, выбрасывается это исключение.

Обратите внимание: это исключение будет выбрасываться до тех пор, пока рассматриваемый класс не станет видимым загрузчику классов охватывающего класса. (То есть загрузчик классов охватывающего класса должен быть инициирующим загрузчиком классов для рассматриваемого класса.) Дополнительные сведения см. в Спецификации виртуальной машины Java.

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

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

Конструктор Описание
ClassNotLoadedException(String className)
ClassNotLoadedException(String className, String message)

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

Модификатор и тип Метод Описание
String className()

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

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

Методы, объявленные в классе 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)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

ClassNotLoadedException

public ClassNotLoadedException(String className)

ClassNotLoadedException

public ClassNotLoadedException(String className, String message)

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

className

public String className()

Сообщить об ошибке или предложить улучшение
Дополнительные справочные сведения по 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