实践题目

在IDEA中或命令行中运行P242 StackTraceDemo2.java。代码运行结果和教材一致吗?为什么?

public class StackTraceDemo2 {
    public static void main(String[] args) {
        try {
            c();
        } catch(NullPointerException ex) {
            ex.printStackTrace();
        }
    }

    private static void c() {
        try {
            b() ;
        } catch(NullPointerException ex) {
            ex.printStackTrace();
            throw ex;
        }
    }

    private static void b() {
        a();
    }

    static String a() {
        String text = null;
        return text.toUpperCase();
    }
}
  • 运行截图

  • 与教材上是一致的。
    异常的追踪堆栈起点仍是异常发生的根源,而不是重抛异常的地方。