Java中定义了Throwable类是所有异常类的祖类。如下图红框标记:
该类中定义了一个getStackTrace()方法,当发生异常时,方便追踪,分析定位问题。
演示如下:
- 说明:定义A_Class和StackTraceTest这两个类,StackTraceTest的main方法调用A_Class中的getStackTraceTest()方法,在getStackTraceTest查看类的堆栈跟踪信息(stack trace information)
1.定义A_Class类。
public class A_Class { public void getStackTraceTest() { //获取堆栈跟踪信息 StackTraceElement[] stackTrace = new Throwable().getStackTrace(); for (StackTraceElement stackTraceElement : stackTrace) { //方法名为main,打印出类 if ("main".equals(stackTraceElement.getMethodName())) { try { System.out.println(Class.forName(stackTraceElement.getClassName())); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } }}
2.定义StackTraceTest类
public class StackTraceTest { public static void main(String[] args) { A_Class otherClass = new A_Class(); otherClass.getStackTraceTest(); }}
3.查看结果
4.输出结果
class cn.tnb.learn.stackTrace.StackTraceTest