美文网首页
获取当前函数对应的调用链

获取当前函数对应的调用链

作者: 瑜骐 | 来源:发表于2018-10-26 22:58 被阅读0次

    通过Thread.getStackTrace()方法

    方法说明

    public StackTraceElement[] getStackTrace()
    

    此方法返回StackTraceElement数组,每个元素代表一个堆栈帧。
    例子代码:

    package com.yiibai;
    
    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()); // 输出结果为ThreadDemo
       }
    } 
    

    通过Exception.getStackTrace()方法

    在当前方法中新建一个异常对象,然后根据这个异常对应的方法getStackTrace来获取对应的调用堆栈,对应的代码如下:

    public class TestException {
        public static void main(String[] args) {
            test();
        }
    
        public static void test(){
            Exception exception = new Exception("test");
            StackTraceElement[] stackTraceElements = exception.getStackTrace();
            System.out.println(stackTraceElements);
        }
    }
    
    调试结果图: 调试结果图

    相关文章

      网友评论

          本文标题:获取当前函数对应的调用链

          本文链接:https://www.haomeiwen.com/subject/recrtqtx.html