Мое logcat окно в Eclipse только отображает первые несколько строк StackTrace для каждого исключения. Это означает, что я часто не вижу, где исключение произошло. Там какой-либо путь состоит в том, чтобы изменить эти настройки?
Если вы имеете в виду часть «... еще 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 ()
, а в «re» -throw "проследить его по инструкции throw
.