zoukankan      html  css  js  c++  java
  • java 轨迹栈

    printStackTrace()方法所提供的信息可以通过getStackTrace()方法直接访问.

    getStackTrace()方法返回一个由根轨迹中的元素所构成的数组,每一个元素都表示栈中的一帧,元素0是栈顶元素,并且是调用序列总的最后一个方法调用,数组中最后一个元素和栈底元素是调用序列中的第一个方法调用

    异常对象是用 new在堆上创建的,所以垃圾回收器会自动回收

    package exceptions;
    //: exceptions/WhoCalled.java
    // Programmatic access to stack trace information.
    
    public class WhoCalled {
      static void f() {
        // Generate an exception to fill in the stack trace
        try {
          throw new Exception();
        } catch (Exception e) {
          for(StackTraceElement ste : e.getStackTrace())
            System.out.println(ste.getMethodName());//直接System.out.println(ste}可以显示更详细信息
      static void g() { f(); }
      static void h() { g(); }
      public static void main(String[] args) {
        f();
        System.out.println("--------------------------------");
        g();
        System.out.println("--------------------------------");
        h();
      }
    } /* Output:
    f
    main
    --------------------------------
    f
    g
    main
    --------------------------------
    f
    g
    h
    main
    *///:~
  • 相关阅读:
    python 格式化 json输出
    python
    回顾2013
    C扩展Python
    C扩展Python
    Python
    Python interview preparing
    Python用smtplib发送邮件
    Python 安装路径, dist-packages 和 site-packages 区别
    nginx worker_cpu_affinity使用方法
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10296358.html
Copyright © 2011-2022 走看看