9.4 Java的异常跟踪栈

Posted 星星和西西

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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会终止该程序,并打印跟踪栈信息。

以上是关于9.4 Java的异常跟踪栈的主要内容,如果未能解决你的问题,请参考以下文章

python traceback

xslt:撒克逊 9.4 与撒克逊 9.6 中的消息

python traceback学习(转)

C++中异常的调用栈

Java中的异常处理机制

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段