码迷,mamicode.com
首页 > 编程语言 > 详细

9.4 Java的异常跟踪栈

时间:2020-04-03 23:41:50      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:com   没有   jvm   tac   xtend   str   rdm   过程   就是   

异常对象的printStackTTrace()方法用于打印异常的跟踪栈信息,根据printStackTTrace()方法输出的结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。
下面测试printStackTrace的例子:

class SelfException extends RuntimeException
{
	SelfException(){}
	SelfException(String msg)
	{
		super(msg);
	}
}
public class printStackTraceTest
{
	public static void main(String[] args)
	{
		firstMed();
	}

	public static void firstMed()
	{
		secondMed();
	}
	public static void secondMed()
	{
		thirdMed();
	}
	public static void thirdMed()
	{
		throw new SelfException("自定义异常信息");
	}
}

运行上面的程序可以看出如下图所示的结果:
技术图片
从图可以看出异常从thirdMed方法开始触发,传到secondMed方法,再传到firstMed方法,最后传到main方法,在main方法终止,这个过程就是Java的异常跟踪栈。
面向对象的应用程序运行时,经常会发生椅子额方法调用,从而形成方法调用栈,异常的传播则相反:只要异常没有被完全捕获(包括异常没有被捕获,或异常被处理后抛出新的异常),异常从异常发生的方法开始向外传播,首先传给方法的调用者,该方法调用者再次传给其调用者,直至传到main方法,如果main方法依然没有处理该异常,JVM会终止该程序,并打印跟踪栈信息。

9.4 Java的异常跟踪栈

标签:com   没有   jvm   tac   xtend   str   rdm   过程   就是   

原文地址:https://www.cnblogs.com/weststar/p/12629482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!