Spec-Zone.ru › OpenJDK 24

Класс 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()
Возвращает бинарное имя класса Class, содержащего точку выполнения, представленную этим элементом трассировки стека.
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()
Возвращает имя модуля, содержащего точку выполнения, представленную данным элементом стека вызовов.
Возвращает:
имя модуля, содержащего точку выполнения, представленную данным элементом стека вызовов; null, если имя модуля недоступно.
С момента:
9
См. также:
  • Module.getName()

getModuleVersion

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

getClassLoaderName

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

getClassName

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

getMethodName

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

isNativeMethod

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

toString

public String toString()
Возвращает строковое представление этого элемента стека вызовов.
Overrides:
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
Параметры:
obj - объект, который нужно сравнить с этим элементом стека вызовов.
Возвращает:
true, если указанный объект является другим экземпляром StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

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

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/StackTraceElement.html

Spec-Zone.ru

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