Окно Eclipse Logcat отключает отслеживания стека исключительной ситуации

Мое logcat окно в Eclipse только отображает первые несколько строк StackTrace для каждого исключения. Это означает, что я часто не вижу, где исключение произошло. Там какой-либо путь состоит в том, чтобы изменить эти настройки?

17
задан Casebash 25 May 2010 в 03:30
поделиться

1 ответ

Если вы имеете в виду часть «... еще 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 .

32
ответ дан 30 November 2019 в 12:19
поделиться