我是靠谱客的博主 多情钥匙,最近开发中收集的这篇文章主要介绍运行时获取方法调用堆栈信息(java) ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前几日系统流程回调时,一个方法莫名其妙被调用,无法定位调用点。最后打印堆栈调用信息,找到问题点。

具体使用如下:

 在需要跟踪的方法中嵌入如下代码(当然AOP是个更好的选择):

        Throwable ex = new Throwable();
        StackTraceElement[] stackElements = ex.getStackTrace();

        if (stackElements != null) {
            for (int i = 0; i < stackElements.length; i++) {
                System.out.println(stackElements[i].getClassName());//返回类的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。
                System.out.println(stackElements[i].getFileName());//返回源文件名,该文件包含由该堆栈跟踪元素所表示的执行点。
                System.out.println(stackElements[i].getLineNumber());//返回源行的行号,该行包含由该堆栈该跟踪元素所表示的执行点。
                System.out.println(stackElements[i].getMethodName());//返回方法名,此方法包含由该堆栈跟踪元素所表示的执行点。
                System.out.println("-------------第"+i+"级调用-------------------");
            }
        }

 

示例结果如下:

Data.java
5
finish
-------------第0级调用-------------------
cn.sccl.Test
Test.java
6
main
-------------第1级调用-------------------

最后

以上就是多情钥匙为你收集整理的运行时获取方法调用堆栈信息(java) 的全部内容,希望文章能够帮你解决运行时获取方法调用堆栈信息(java) 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部