怪我咯2017-04-18 10:37:58
最下的異常的最後一行和前面一個的第一行結合起來就是完成的堆疊資訊。
原因:
這些異常資訊是透過Throwable.printStackTrace()
输出到System.err
,先引用JDK官方文件的一段描述
HighLevelException: MidLevelException: LowLevelException
at Junk.a(Junk.java:13)
at Junk.main(Junk.java:4)
Caused by: MidLevelException: LowLevelException
at Junk.c(Junk.java:23)
at Junk.b(Junk.java:17)
at Junk.a(Junk.java:11)
... 1 more
Caused by: LowLevelException
at Junk.e(Junk.java:30)
at Junk.d(Junk.java:27)
at Junk.c(Junk.java:21)
... 3 more
Note the presence of lines containing the characters "...". These lines indicate that the remainder of the stack trace for this exception mat the indicated number of frames from the bottom of the stack trace of the exception the indicated number of frames from the bottom of the stack trace of the exception that was exception (the "enclosing" exception).
這些行指示此異常的椎棧追蹤的其餘部分匹配來自異常(由 "enclosing" 異常引起)的堆疊追蹤底部的指定數量的幀
也可以這樣理解,方法之間的呼叫都是棧模型,例如a.b.c
表示a方法呼叫b方法,b方法呼叫c方法。那麼在c方法中拋出的異常只表示c方法棧幀中的信息,b方法拋出異常會有b和c兩個棧幀的信息,如此網上遞推。