Frage

Mein logcat Fenster in Eclipse zeigt nur die ersten paar Zeilen des Stacktrace für jede Ausnahme. Das bedeutet, dass ich oft nicht sehen, wo eine Ausnahme aufgetreten. Gibt es eine Möglichkeit, diese Einstellung zu ändern?

War es hilfreich?

Lösung

Wenn Sie beziehen sich auf die „... 12 weitere Linien ...“ Teil, nur für Ausnahmen sehen, dass die Ursache für eine andere Ausnahme waren. Wenn der obere Teil der Stack-Trace das gleiches wie die frühere Spur ist, wird der volle Satz von Rahmen nur für die äußerste Ausnahme gezeigt, und die anderen Spuren erhalten, die „...“ Behandlung.

Um es anders auszudrücken, das Stück einer Spur, die nicht gezeigt wird, ist ein Duplikat einer Spur, die früher in der Ausnahme Ursache Kette erschien. Angenommen, I-Code, wo die Methode main() Anrufe one(), die two() nennt, und so weiter. four() löst eine Ausnahme. two() fängt sie und wieder wirft sie. Die Ausnahme wird wie folgt aussehen:

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

Die „verursachte durch“ Ausnahme, sagt „... 3 mehr“ und nicht als explizite Auflistung one(), main() und dalvik.system.NativeStart.main. So, um die volle Spur der ursprünglichen Ausnahme zu erhalten, können Sie durch das Lesen seiner Spur beginnen würde, dann weiter auf der Spur oben.

Hinweis gibt es keine Überlappung -. two() erscheint in beiden, aber in die „erste“ verfolgen, es ist auf den Anruf zu three(), und in der „re-throw“ trace es ist auf der throw Anweisung

Andere Tipps

Sie können alle Protokollmethoden (log.d, log.i, log.e, usw.) mit (String tag, String msg, Throwable tr) Parameter überlasten, wo der dritte Parameter ist die Ausnahme. Dies gibt Ihnen die volle Stacktrace in logcat

http://developer.android.com/reference/android/util/ log.html

Wenn Ihr Code ruft eine Methode, die zu groß Stack erzeugt können (und sollten) die Ausnahme in Ihrem Code und Ausgabe verarbeiten, was zu Protokolle relevant ist.

Wenn Sie keine Ausnahme haben Umgang mit was auch immer, und Sie wissen nicht einmal, wo in Ihrem Code sollten Sie eine solche Handler werden setzen dann das Problem ganz woanders ist -. Sie sollten Ausnahmen sein Umgang mit etwas besser als die

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top