zoukankan      html  css  js  c++  java
  • java 中打印调用栈

    source-code:
    public class A {
    public A() {}
    private static void printStackTrace() {
            StackTraceElement[] stackElements = new Throwable().getStackTrace();
            if(stackElements != null)
            {
                for(int i = 0; i < stackElements.length; i++)
                {
                    System.out.println(""+ stackElements[i]); 
                }
            }
        }
     
        public void methodA() { methodB(); }
        public void methodB() { printStackTrace();}    
        
        public static void main(String[] argv) {
          A a = new A();
          a.methodA();
        }
      }
     
    output:
    A.printStackTrace(A.java:5)
    A.methodB(A.java:16)
    A.methodA(A.java:15)
    A.main(A.java:20)
     
    Note:
    StackTraceElement.java
        public String toString() {
            return getClassName() + "." + methodName +
                (isNativeMethod() ? "(Native Method)" :
                 (fileName != null && lineNumber >= 0 ?
                  "(" + fileName + ":" + lineNumber + ")" :
                  (fileName != null ?  "("+fileName+")" : "(Unknown Source)")));
        }
    另外下面这些方法也可以:
    new Exception("hello").printStackTrace();
    Thread.getStackTrace()/Thread.getAllStackTraces() since jdk 1.5
    Thread.currentThread().dumpStack()
  • 相关阅读:
    词汇表处理脚本
    jLowNote又,我为什么要说又,有bug
    于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了
    捉到Bug一只,jLowNote里的
    高产赛母猪
    我超喜欢Nimbus风格的!
    专注写记事本三十年
    秒秒钟食言
    别再打了,Java和Python,你们其实都是C
    电话本写完了,发个1.0吧
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/5902428.html
Copyright © 2011-2022 走看看