Класс StackTraceElement
- Все реализуемые интерфейсы:
Serializable
public final class StackTraceElement extends Object implements Serializable
Throwable.getStackTrace(). Каждый элемент представляет отдельный кадр стека. Все кадры стека, кроме верхнего, представляют вызов метода. Верхний кадр стека представляет точку выполнения, в которой была сформирована трассировка стека. Обычно это точка, в которой было создано исключение, соответствующее трассировке стека.- Начиная с:
- 1.4
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
StackTraceElement |
Создает элемент трассировки стека, представляющий указанную точку выполнения. |
StackTraceElement |
Создает элемент трассировки стека, представляющий указанную точку выполнения. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Возвращает true, если указанный объект является другим экземпляром StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр. |
String |
getClassLoaderName() |
Возвращает имя загрузчика класса, которому принадлежит класс, содержащий точку выполнения, представленную этим элементом трассировки стека. |
String |
getClassName() |
Возвращает двоичное имя Class, содержащего точку выполнения, представленную этим элементом трассировки стека. |
String |
getFileName() |
Возвращает имя исходного файла, содержащего точку выполнения, представленную этим элементом трассировки стека. |
int |
getLineNumber() |
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека. |
String |
getMethodName() |
Возвращает имя метода, содержащего точку выполнения, представленную этим элементом трассировки стека. |
String |
getModuleName() |
Возвращает имя модуля, содержащего точку выполнения, представленную этим элементом трассировки стека. |
String |
getModuleVersion() |
Возвращает версию модуля, содержащего точку выполнения, представленную этим элементом трассировки стека. |
int |
hashCode() |
Возвращает хеш-код этого элемента трассировки стека. |
boolean |
isNativeMethod() |
Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом трассировки стека, является нативным методом. |
String |
toString() |
Возвращает строковое представление этого элемента трассировки стека. |
Подробное описание конструкторов
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
- См. также:
getModuleVersion
public String getModuleVersion()
- Возвращает:
- версию модуля
Module, содержащего точку выполнения, представленную этим элементом трассировки стека;null, если версия модуля недоступна. - Начиная с:
- 9
- См. также:
getClassLoaderName
public String getClassLoaderName()
- Возвращает:
- имя загрузчика класса, которому принадлежит класс, содержащий точку выполнения, представленную этим элементом трассировки стека;
null, если загрузчику класса не присвоено имя. - Начиная с:
- 9
- См. также:
getClassName
public String getClassName()
Class, содержащего точку выполнения, представленную этим элементом трассировки стека.- Возвращает:
- двоичное имя
Class, содержащего точку выполнения, представленную этим элементом трассировки стека
getMethodName
public String getMethodName()
- Возвращает:
- имя метода, содержащего точку выполнения, представленную этим элементом трассировки стека.
isNativeMethod
public boolean isNativeMethod()
- Возвращает:
-
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, поскольку реализация может решить опустить некоторые части возвращаемой строки. - "
- Возвращает:
- строковое представление объекта
- См. также:
equals
public boolean equals(Object obj)
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.hashCode
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/StackTraceElement.html