9.4 Java的异常跟踪栈

异常对象的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会终止该程序,并打印跟踪栈信息。

猜你喜欢

转载自www.cnblogs.com/weststar/p/12629482.html
9.4