《Java多线程编程核心技术(第2版)》 —1.7 StackTraceElement[] getStackTrace()方
1.7 StackTraceElement[] getStackTrace()方法
StackTraceElement[] getStackTrace()方法的作用是返回一个表示该线程堆栈跟踪元素数组。如果该线程尚未启动或已经终止,则该方法将返回一个零长度数组。如果返回的数组不是零长度的,则其第一个元素代表堆栈顶,它是该数组中最新的方法调用。最后一个元素代表堆栈底,是该数组中最旧的方法调用。
创建测试用的代码如下:
package test1;
public class Test1 {
public void a() {
b();
}
public void b() {
c();
}
public void c() {
d();
}
public void d() {
e();
}
public void e() {
StackTraceElement[] array = Thread.currentThread().getStackTrace();
if (array != null) {
for (int i = 0; i < array.length; i++) {
StackTraceElement eachElement = array[i];
System.out.println("className=" + eachElement.getClassName() + " methodName=" + eachElement.getMethodName() + " fileName=" + eachElement.getFileName() + " lineNumber="+ eachElement.getLineNumber());
}
}
}
public static void main(String[] args) {
Test1 test1 = new Test1();
test1.a();
}
}
程序运行结果如下:
className=java.lang.Thread methodName=getStackTrace fileName=Thread.java lineNumber=1559
className=test1.Test1 methodName=e fileName=Test1.java lineNumber=22
className=test1.Test1 methodName=d fileName=Test1.java lineNumber=18
className=test1.Test1 methodName=c fileName=Test1.java lineNumber=14
className=test1.Test1 methodName=b fileName=Test1.java lineNumber=10
className=test1.Test1 methodName=a fileName=Test1.java lineNumber=6
className=test1.Test1 methodName=main fileName=Test1.java lineNumber=36
在控制台中输出了当前线程的堆栈跟踪信息。
- 点赞
- 收藏
- 关注作者
评论(0)