Java.lang.Thread.getStackTrace() 方法

描述

java.lang.Thread.getStackTrace() 方法返回一个堆栈跟踪元素数组,表示此线程的堆栈转储。如果此线程尚未启动或已终止,这将返回一个零长度数组 .

如果返回的数组长度非零,则数组的第一个元素表示堆栈的顶部,这是序列中最近的方法调用。 数组的最后一个元素表示堆栈的底部,它是序列中最近的方法调用。


声明

以下是 java.lang.Thread.getStackTrace() 方法的声明。

public StackTraceElement[] getStackTrace()

参数

NA


返回值

该方法返回一个 StackTraceElement 数组,每个代表一个栈帧。


异常

SecurityException − 如果存在安全管理器并且其 checkPermission 方法不允许获取线程的堆栈跟踪。


示例

下面的例子展示了 java.lang.Thread.getStackTrace() 方法的使用。

package com.tutorialspoint;

import java.lang.*;

public class ThreadDemo {

   public static void main(String[] args) {
      function();
   }

   public static void function() {
      new ThreadDemo().function2();
   }

   public void function2() {
      System.out.println(Thread.currentThread().getStackTrace()[3].getClassName());
   }
} 

让我们编译并运行上面的程序,这将产生下面的结果 −

com.tutorialspoint.ThreadDemo