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

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

作者: 瑜骐 | 来源:发表于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);
    }
}
调试结果图: 调试结果图

相关文章

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

    通过Thread.getStackTrace()方法 方法说明 此方法返回StackTraceElement数组,...

  • 打印函数调用堆栈

    相关函数签名 backtrace():栈回溯,保存各个栈帧的地址。该函数用于获取当前线程的函数调用堆栈,获取的信息...

  • 使用eval将字符串转换为对应的JS函数并调用

    动态获取到字符串格式的函数名,把它转换为对应的JS函数并调用。 动态获取到字符串格式的变量名,把它转换为对应的变量...

  • python 标准库之os

    常用的函数调用: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir...

  • vue axios 默认异步改为同步

    背景:调用getvip方法需要先完成gettoken方法,获取token值目标函数和当前函数都需加上async,a...

  • PHP 扩展 - 获取当前时间毫秒

    类似内置函数 microtime 中获取当前时间的毫秒数,下面实现参考了该函数的源代码: 然后调用 getMicr...

  • backtrace

    glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。$ grep backtr...

  • MySQL 时间函数

    MySQL 时间函数 获取当前日期的函数和获取当前时间的函数 CURDATE()和CURRENT_DATE()函数...

  • Swift Date时区问题处理

    //获取当前系统的时间 //根据字符串获取当前时区的时间 调用: The Result:

  • D6--时间函数

    6.1 获取当前时间 1、获取年月日时分秒 now 函数:获取当前时间信息sysdate 函数: 区别:now()...

网友评论

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

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