异常跟踪栈
一 异常跟踪栈简介
异常对象的printStackTrace方法用于打印异常的跟踪栈信息,根据printStackTrace方法的输出结果,我们可以找到异常的源头,并跟踪到异常一路触发的过程。
二 main方法中异常跟踪栈的应用
1 代码示例
class SelfException extends RuntimeException { SelfException(){} SelfException(String msg) { super(msg); } } public class PrintStackTraceTest { public static void main(String[] args) { firstMethod(); } public static void firstMethod() { secondMethod(); } public static void secondMethod() { thirdMethod(); } public static void thirdMethod() { throw new SelfException("自定义异常信息"); } }
2 运行结果
Exception in thread "main" SelfException: 自定义异常信息
at PrintStackTraceTest.thirdMethod(PrintStackTraceTest.java:26)
at PrintStackTraceTest.secondMethod(PrintStackTraceTest.java:22)
at PrintStackTraceTest.firstMethod(PrintStackTraceTest.java:18)
at PrintStackTraceTest.main(PrintStackTraceTest.java:14)
3 结果分析
只要异常没有被完全捕获,异常从发生异常的方法逐渐向外传播,首先传给该方法的调用者,该方法调用者再次创给其调用者……直至最后传到 main方法,如果main方法依然没有处理该异常,JVM会中止该程序,并打印异常的跟踪栈信息。
三 多线程中异常跟踪栈的应用
1 代码示例
public class ThreadExceptionTest implements Runnable { public void run() { firstMethod(); } public void firstMethod() { secondMethod(); } public void secondMethod() { int a = 5; int b = 0; int c = a / b; } public static void main(String[] args) { new Thread(new ThreadExceptionTest()).start(); } }
2 运行结果
Exception in thread "Thread-0" java.lang.ArithmeticException: / by zero
at ThreadExceptionTest.secondMethod(ThreadExceptionTest.java:16)
at ThreadExceptionTest.firstMethod(ThreadExceptionTest.java:10)
at ThreadExceptionTest.run(ThreadExceptionTest.java:6)
at java.lang.Thread.run(Thread.java:619)
3 结果分析
程序在Thread的run方法中出现了ArithmeticException异常,这个异常的源头是ThreadException的SecondMethod方法,位于文件16行。这个异常传播到Thread类的run方法就会结束。
上一篇: jquery操作表格
下一篇: C# 不使用工作表数据创建Excel图表
推荐阅读
-
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
-
[java]源码详解java异常处理
-
iOS 14.2值得升!用户实测:锁屏密码漏输、拖影、无线充电异常等均已修复
-
一个站长工具数据异常引起的反思
-
PL/SQL系统定义的异常的操作实例
-
锁住余额,为何还会更新异常?
-
部分Xen虚拟的linux VPS时间异常的解决方法
-
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
-
Spark异常:A master URL must be set in your configuration处理记录
-
初学Python常见异常错误,总有一处你会遇到!