Wie erhalte ich die aktuelle Stapelverfolgung in Java, so wie man in .NET Folgendes tun kann Environment.StackTrace
?
Ich fand Thread.dumpStack()
aber das ist nicht das, was ich will - ich möchte den Stack-Trace zurückbekommen, nicht ausdrucken.
Wie erhalte ich die aktuelle Stapelverfolgung in Java, so wie man in .NET Folgendes tun kann Environment.StackTrace
?
Ich fand Thread.dumpStack()
aber das ist nicht das, was ich will - ich möchte den Stack-Trace zurückbekommen, nicht ausdrucken.
Sie können verwenden [Thread.currentThread().getStackTrace()](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#getStackTrace())
.
Das gibt ein Array von StackTraceElement
s, die den aktuellen Stack-Trace eines Programms darstellen.
Tony hat als Kommentar zu der akzeptierten Antwort die wohl beste Antwort gegeben, die tatsächlich beantwortet die Frage des Auftraggebers :
Arrays.toString(Thread.currentThread().getStackTrace()).replace( ',', '\n' );
... die OP hat NICHT fragen, wie man eine String
aus dem Stack-Trace einer Exception
. Und obwohl ich ein großer Fan von Apache Commons bin, gibt es bei etwas so Einfachem wie dem oben genannten keinen logischen Grund, eine externe Bibliothek zu verwenden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.