异常跟踪栈
来源:互联网 发布:chrome 控制台 执行js 编辑:程序博客网 时间:2024/04/29 02:31
一 异常跟踪栈简介
异常对象的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方法就会结束。
- 异常跟踪栈
- Java的异常跟踪栈
- Python中的异常栈跟踪
- 异常跟踪
- android 中的异常跟踪
- Android异常跟踪调试
- 跟踪程序异常退出
- python中利用tracekback跟踪栈以及打印异常信息
- C++异常中的堆栈跟踪
- C++异常中的堆栈跟踪
- C++异常中的堆栈跟踪
- C++异常中的堆栈跟踪
- C++异常中的堆栈跟踪
- C++异常中的堆栈跟踪 [转载]
- 审计跟踪Linux的异常活动
- 软件发布了如何跟踪异常错误
- 审计跟踪Linux的异常活动
- [转]C++异常中的堆栈跟踪
- setBuddy函数
- 组合模式——公司组织结构
- 委托事件
- libevent简单实现
- JavaFX本地应用自动更新功能的实现——FXLauncher
- 异常跟踪栈
- 异常链
- 557. Reverse Words in a String III\521. Longest Uncommon Subsequence I
- 深入理解RunLoop
- 抽象工厂模式——肯德基消费
- 递归方法的重要规定——递归一定要向己知方向递归
- silly的一次大规模重构
- java.sql.PreparedStatement的setNull用法
- Deque与LinkedBlockingDeque