微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java异常跟踪栈定义与用法示例

这篇文章主要介绍了Java异常跟踪栈定义与用法,结合具体实例形式分析了异常处理栈的概念、原理及相关使用技巧,需要的朋友可以参考下

本文实例讲述了Java异常跟踪栈定义与用法分享给大家供大家参考,具体如下:

一、异常跟踪栈简介

异常对象的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相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐