Если вы ссылаетесь на часть «... еще 12 строк ...», вы видите это только для исключений, которые были причиной другого исключения. Если верхняя часть трассировки стека совпадает с предыдущей трассой, полный набор кадров отображается только для самого внешнего исключения, а остальные трассы обрабатываются "...".
Другими словами, фрагмент трассы, которая не показана, является дубликатом трассы, появившейся ранее в цепочке причин исключений. Например, предположим, у меня есть код, где метод main()
вызывает one()
, который вызывает two()
и так далее. four()
выдает исключение. two()
ловит и перебрасывает. Исключение будет выглядеть так:
java.lang.RuntimeException: re-throw
at Foo.two(Foo.java:14)
at Foo.one(Foo.java:7)
at Foo.main(Foo.java:3)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: first
at Foo.four(Foo.java:23)
at Foo.three(Foo.java:19)
at Foo.two(Foo.java:12)
... 3 more
Исключение «вызвано» говорит «... еще 3», а не явно перечисляет one()
, main()
и dalvik.system.NativeStart.main
. Таким образом, чтобы получить полную трассировку исходного исключения, вы должны начать с чтения его трассы, а затем продолжить с трассировки выше.
Обратите внимание, что перекрытия нет - two()
появляется в обоих, но в «первой» трассе он находится на вызове three()
, а в «повторной» трассировке - в инструкции throw
.