Spec-Zone.ru › OpenJDK 21

Класс StackTraceElement

java.lang.Object
java.lang.StackTraceElement
Все реализованные интерфейсы:
Serializable
public final class StackTraceElement extends Object implements Serializable
Элемент в стеке вызовов, возвращаемый методом Throwable.getStackTrace(). Каждый элемент представляет собой отдельный кадр стека. Все кадры стека, кроме верхнего, представляют вызов метода. Кадр вверху стека представляет точку выполнения, в которой был сгенерирован стек вызовов. Как правило, это точка, в которой был создан исключительный объект, соответствующий стеку вызовов.
С:
1.4
См. также:
  • Сериализованная форма

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

Конструктор Описание
StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
Создаёт элемент стека вызовов, представляющий указанную точку выполнения.
StackTraceElement(String classLoaderName, String moduleName, String moduleVersion, String declaringClass, String methodName, String fileName, int lineNumber)
Создаёт элемент стека вызовов, представляющий указанную точку выполнения.

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Возвращает true, если указанный объект является другим экземпляром StackTraceElement , представляющим ту же точку выполнения, что и этот экземпляр.
String getClassLoaderName()
Возвращает имя загрузчика классов класса, содержащего точку выполнения, представленную этим элементом стека вызовов.
String getClassName()
Возвращает полное имя класса, содержащего точку выполнения, представленную этим элементом стека вызовов.
String getFileName()
Возвращает имя файла исходного кода, содержащего точку выполнения, представленную этим элементом стека вызовов.
int getLineNumber()
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом стека вызовов.
String getMethodName()
Возвращает имя метода, содержащего точку выполнения, представленную этим элементом стека вызовов.
String getModuleName()
Возвращает имя модуля, содержащего точку выполнения, представленную этим элементом стека вызовов.
String getModuleVersion()
Возвращает версию модуля, содержащего точку выполнения, представленную этим элементом стека вызовов.
int hashCode()
Возвращает хэш-код для этого элемента стека вызовов.
boolean isNativeMethod()
Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом стека вызовов, является нативным методом.
String toString()
Возвращает строковое представление этого элемента стека вызовов.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

StackTraceElement

public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
Создаёт элемент стека исключений, представляющий указанную точку выполнения. module name и module version элемента стека исключений будут null.
Параметры:
declaringClass - полное имя класса, содержащего точку выполнения, представленную элементом стека исключений
methodName - имя метода, содержащего точку выполнения, представленную элементом стека исключений
fileName - имя файла, содержащего точку выполнения, представленную элементом стека исключений, или null , если эта информация недоступна
lineNumber - номер строки исходного кода, содержащей точку выполнения, представленную элементом стека исключений, или отрицательное число, если эта информация недоступна. Значение -2 указывает, что метод, содержащий точку выполнения, является методом нативного кода
Исключения:
NullPointerException - если declaringClass или methodName равно null
С тех пор:
1.5

StackTraceElement

public StackTraceElement(String classLoaderName, String moduleName, String moduleVersion, String declaringClass, String methodName, String fileName, int lineNumber)
Создаёт элемент стека исключений, представляющий указанную точку выполнения.
Параметры:
classLoaderName - имя загрузчика классов, если имя загрузчика классов класса, содержащего точку выполнения, представленную элементом стека исключений, задано; в противном случае null
moduleName - имя модуля, если класс, содержащий точку выполнения, представленную элементом стека исключений, находится в именованном модуле; в противном случае null
moduleVersion - версия модуля, если класс, содержащий точку выполнения, представленную элементом стека исключений, находится в именованном модуле с версией; в противном случае null
declaringClass - полное имя класса, содержащего точку выполнения, представленную элементом стека исключений
methodName - имя метода, содержащего точку выполнения, представленную элементом стека исключений
fileName - имя файла, содержащего точку выполнения, представленную элементом стека исключений, или null , если эта информация недоступна
lineNumber - номер строки исходного кода, содержащей точку выполнения, представленную элементом стека исключений, или отрицательное число, если эта информация недоступна. Значение -2 указывает, что метод, содержащий точку выполнения, является методом нативного кода
Исключения:
NullPointerException - если declaringClass является null или methodName является null
С тех пор:
9

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

getFileName

public String getFileName()
Возвращает имя исходного файла, содержащего точку выполнения, представленную элементом стека исключений. Как правило, это соответствует атрибуту SourceFile соответствующего файла class (в соответствии с Спецификацией виртуальной машины Java, раздел 4.7.7). В некоторых системах имя может относиться к какой-либо единице исходного кода, отличной от файла, например, к записи в репозитории исходного кода.
Возвращает:
имя файла, содержащего точку выполнения, представленную элементом стека исключений, или null , если эта информация недоступна.

getLineNumber

public int getLineNumber()
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную элементом стека исключений. Как правило, это выводится из атрибута LineNumberTable соответствующего файла class (в соответствии с Спецификацией виртуальной машины Java, раздел 4.7.8).
Возвращает:
номер строки исходного кода, содержащей точку выполнения, представленную элементом стека исключений, или отрицательное число, если эта информация недоступна.

getModuleName

public String getModuleName()
Возвращает имя модуля, содержащего точку выполнения, представленную элементом стека исключений.
Возвращает:
имя модуля Module , содержащего точку выполнения, представленную данным элементом стека исключений; null , если имя модуля недоступно.
С тех пор:
9
См. также:
  • Module.getName()

getModuleVersion

public String getModuleVersion()
Возвращает версию модуля, содержащего точку выполнения, представленную элементом стека исключений.
Возвращает:
версию модуля Module , содержащего точку выполнения, представленную данным элементом стека исключений; null , если версия модуля недоступна.
С тех пор:
9
См. также:
  • ModuleDescriptor.Version

getClassLoaderName

public String getClassLoaderName()
Возвращает имя загрузчика классов класса, содержащего точку выполнения, представленную элементом стека исключений.
Возвращает:
имя загрузчика классов класса, содержащего точку выполнения, представленную элементом стека исключений; null , если имя загрузчика классов не задано.
С тех пор:
9
См. также:
  • ClassLoader.getName()

getClassName

public String getClassName()
Возвращает полное имя класса, содержащего точку выполнения, представленную элементом стека исключений.
Возвращает:
полное имя Class , содержащего точку выполнения, представленную элементом стека исключений.

getMethodName

public String getMethodName()
Возвращает имя метода, содержащего точку выполнения, представленную элементом стека исключений. Если точка выполнения находится в инициализаторе экземпляра или класса, этот метод вернёт соответствующее специальное имя метода, "<init>" или "<clinit>", согласно разделу 3.9 Спецификации виртуальной машины Java.
Возвращает:
имя метода, содержащего точку выполнения, представленную элементом стека исключений.

isNativeMethod

public boolean isNativeMethod()
Возвращает true, если метод, содержащий точку выполнения, представленную элементом стека исключений, является методом нативного кода.
Возвращает:
true , если метод, содержащий точку выполнения, представленную элементом стека исключений, является методом нативного кода.

toString

public String toString()
Возвращает строковое представление данного элемента стека исключений.
Переопределяет:
toString в классе Object
Примечание API:
Формат этой строки зависит от реализации, но следующие примеры могут считаться типичными:
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)" - См. описание ниже.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java)" - Номер строки недоступен.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Unknown Source)" - Ни имя файла, ни номер строки недоступны.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Native Method)" - Метод, содержащий точку выполнения, является методом нативного кода.
  • "com.foo.loader//com.foo.bar.App.run(App.java:12)" - Класс точки выполнения определён в безымянном модуле загрузчика классов с именем com.foo.loader.
  • "acme@2.1/org.acme.Lib.test(Lib.java:80)" - Класс точки выполнения определён в модуле acme , загруженном встроенным загрузчиком классов, например, загрузчиком классов приложения.
  • "MyClass.mash(MyClass.java:9)" - Класс MyClass находится в пути класса приложения.

Первый пример показывает элемент стека исключений, состоящий из трёх элементов, разделённых символом "/", за которым следуют имя файла и номер строки исходного кода, содержащей точку выполнения. Первый элемент "com.foo.loader" - имя загрузчика классов. Второй элемент "foo@9.0" - имя модуля и его версия. Третий элемент - метод, содержащий точку выполнения; "com.foo.Main"" - полное имя класса, а "run" - имя метода. "Main.java" - имя файла, а "101" - номер строки.

Если класс определён в безымянном модуле, то второй элемент опускается, как показано в "com.foo.loader//com.foo.bar.App.run(App.java:12)".

Если загрузчик классов является встроенным загрузчиком классов или не имеет имени, то первый элемент и следующие за ним "/" опускаются, как показано в "acme@2.1/org.acme.Lib.test(Lib.java:80)". Если первый элемент опущен, а модуль - безымянный модуль, то второй элемент и следующие за ним "/" также опускаются, как показано в "MyClass.mash(MyClass.java:9)".

Метод toString может возвращать два разных значения для двух экземпляров StackTraceElement , которые равны, например, созданного с помощью конструктора и полученного из Throwable или StackWalker.StackFrame, где реализация может выбрать, какие элементы исключить из возвращаемой строки.

Возвращает:
строковое представление объекта.
См. также:
  • Throwable.printStackTrace()

equals

public boolean equals(Object obj)
Возвращает true, если указанный объект является другим экземпляром StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр. Два элемента стека вызовов a и b равны тогда и только тогда, когда:

     equals(a.getClassLoaderName(), b.getClassLoaderName()) &&
     equals(a.getModuleName(), b.getModuleName()) &&
     equals(a.getModuleVersion(), b.getModuleVersion()) &&
     equals(a.getClassName(), b.getClassName()) &&
     equals(a.getMethodName(), b.getMethodName())
     equals(a.getFileName(), b.getFileName()) &&
     a.getLineNumber() == b.getLineNumber()

 
где equals имеет семантику Objects.equals.
Overrides:
equals в классе Object
Parameters:
obj - объект для сравнения с этим элементом стека вызовов.
Returns:
true, если указанный объект является другим экземпляром StackTraceElement , представляющим ту же точку выполнения, что и этот экземпляр.
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает значение хэш-кода для этого элемента стека вызовов.
Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого объекта.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/StackTraceElement.html

Spec-Zone.ru

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