- 当发生异常的时候,JVM会在控制台打印出异常的跟踪栈,可以通过这个跟踪栈得到一路除法的过程,以下为代码示例
package TrackingStack; import java.io.Serializable; class SelfException extends RuntimeException { SelfException() {} SelfException(String msg){super(msg);} } public class PtintStackTrace { public static void main(String args[]){ first(); } public static void first(){ second(); } public static void second(){ third(); } public static void third(){ throw new SelfException("Exception~"); } }
运行这个程序,可以看到控制台打印出一连串的异常信息,这些信息记录了异常的发生,如下
Exception in thread "main" TrackingStack.SelfException: Exception~ at TrackingStack.PtintStackTrace.third(PtintStackTrace.java:23) at TrackingStack.PtintStackTrace.second(PtintStackTrace.java:19) at TrackingStack.PtintStackTrace.first(PtintStackTrace.java:15) at TrackingStack.PtintStackTrace.main(PtintStackTrace.java:11)
-
下面是另外一个例子,异曲同工
package TrackingStack; public class ThreadException 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 ThreadException()).start(); } }
控制台输出的信息:
Exception in thread "Thread-0" java.lang.ArithmeticException: / by zero at TrackingStack.ThreadException.secondMethod(ThreadException.java:13) at TrackingStack.ThreadException.firstMethod(ThreadException.java:8) at TrackingStack.ThreadException.run(ThreadException.java:5) at java.lang.Thread.run(Thread.java:748)
异常捕获就到这里
java异常捕获(7) 异常跟踪栈
猜你喜欢
转载自blog.csdn.net/weixin_39452731/article/details/81773594
今日推荐
周排行