Ich mache gerade ein Socket-Programm durch. Darin printStackTrace
wird das IOException
Objekt im catch-Block aufgerufen .
Was macht printStackTrace()
eigentlich?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Ich bin mir seines Zwecks nicht bewusst. Was wird es verwendet?
e.printStackTrace(); System.exit(1);
Hier möchte ich die gleiche Frage stellen wie das OP, aber in einem anderen Sinne: Was genau ist der Zweck davon? Wird die JRE die Stapelverfolgung nicht automatisch drucken und beenden, wenn die Ausnahme ausgelöst wird? Dh hier ist nicht wirklich viel "Exception Handling" los, oder?Antworten:
Es ist eine Methode für
Exception
Instanzen, die den Stack-Trace der Instanz drucktSystem.err
.Es ist ein sehr einfaches, aber sehr nützliches Werkzeug zur Diagnose von Ausnahmen. Es zeigt Ihnen, was passiert ist und wo im Code dies passiert ist.
Hier ist ein Beispiel, wie es in der Praxis verwendet werden könnte:
quelle
catch
Blöcken :-)throw new RuntimeException(e)
Ich war auch ein bisschen neugierig, also habe ich einfach einen kleinen Beispielcode zusammengestellt, in dem Sie sehen können, was er tut:
Anrufen
println(e)
:Anrufen
e.printStackTrace()
:quelle
System.err.println(e);
wird angemessener sein.Es hilft, die Ausnahme zu verfolgen. Zum Beispiel schreiben Sie einige Methoden in Ihr Programm und eine Ihrer Methoden verursacht Fehler. Dann hilft Ihnen printstack zu identifizieren, welche Methode den Fehler verursacht. Stack hilft dabei:
Zuerst wird Ihre Hauptmethode aufgerufen und in den Stapel eingefügt, dann wird die zweite Methode aufgerufen und in der LIFO-Reihenfolge in den Stapel eingefügt. Wenn irgendwo in einer Methode ein Fehler auftritt, hilft dieser Stapel, diese Methode zu identifizieren.
quelle
printStackTrace()
hilft dem Programmierer zu verstehen, wo das eigentliche Problem aufgetreten ist.printStacktrace()
ist eine MethodeThrowable
derjava.lang
Paketklasse. Es werden mehrere Zeilen in der Ausgabekonsole gedruckt. Die erste Zeile besteht aus mehreren Zeichenfolgen. Es enthält den Namen der Throwable-Unterklasse und die Paketinformationen. Ab der zweiten Zeile wird die Fehlerposition / Zeilennummer beginnend mit beschriebenat
.Die letzte Zeile beschreibt immer das Ziel, das von dem Fehler / der Ausnahme betroffen ist. Die vorletzte Zeile informiert uns über die nächste Zeile im Stapel, in die das Steuerelement geht, nachdem die Übertragung von der in der letzten Zeile beschriebenen Zeilennummer erfolgt ist. Die Fehler / Ausnahmen stellt die Ausgabe in Form eines Stapels, die in den Stapel durch gefüttert wurden
fillInStackTrace()
Methode derThrowable
Klasse, die sich in der Programmsteuertransferdaten in den Ausführungsstapel füllt. Die Zeilen, die mit beginnenat
, sind nichts anderes als die Werte des Ausführungsstapels. Auf diese Weise kann der Programmierer verstehen, wo im Code das eigentliche Problem liegt.Zusammen mit der
printStackTrace()
Methode ist es eine gute Idee, zu verwendene.getmessage()
.quelle
printStackTrace()
Gibt die Stellen aus, an denen die Ausnahme im Quellcode aufgetreten ist, sodass der Autor, der das Programm geschrieben hat, sehen kann, was schief gelaufen ist. Da es jedoch Probleme im Quellcode gibt, können die Benutzer, die möglicherweise keine Codierungserfahrung haben oder nicht, möglicherweise nicht verstehen, was schief gelaufen ist. Wenn das Programm es dem Benutzer ermöglicht, Fehlermeldungen an die Autoren zu senden, können die Benutzer sind möglicherweise nicht in der Lage, gute Daten darüber zu geben, was schief gelaufen ist.Sie sollten die
Logger.getLogger()
Methode in Betracht ziehen , sie bietet eine bessere Möglichkeit zur Ausnahmebehandlung (Protokollierung) und gilt außerdemprintStackTrace()
ohne Argumente als veraltet und sollte NUR für Debugging-Zwecke verwendet werden, nicht für die Benutzeranzeige.quelle
Das
printStackTrace()
hilft dem Programmierer zu verstehen , wo das eigentliche Problem aufgetreten ist . DieprintStackTrace()
Methode ist Mitglied der KlasseThrowable
imjava.lang
Paket.quelle
printStackTrace
ist eine Methode derThrowable
Klasse. Diese Methode zeigt eine Fehlermeldung in der Konsole an. wo wir die Ausnahme im Quellcode bekommen. Diese Methoden können mit catch block verwendet werden und beschreiben:Die drei Methoden, die die Ausnahme auf der Konsole beschreiben (in der printStackTrace eine davon ist), sind:
printStackTrace()
toString()
getMessage()
Beispiel:
quelle
printStackTrace () hilft dem Programmierer zu verstehen, wo das eigentliche Problem aufgetreten ist. Es hilft, die Ausnahme zu verfolgen. Es ist die printStackTrace () -Methode der Throwable-Klasse, die von jeder Ausnahmeklasse geerbt wird. Diese Methode druckt dieselbe Nachricht des e-Objekts und auch die Zeilennummer, in der die Ausnahme aufgetreten ist.
Das Folgende ist ein weiteres Beispiel für den Druckstapel der Ausnahme in Java.
java.lang.Throwable: Dies ist eine neue Ausnahme in Java ... unter ClassName.methodName (fileName: 5)
quelle
Was ist die Verwendung der e.printStackTrace () -Methode in Java?
Nun, der Zweck dieser Methode
e.printStackTrace();
ist es, herauszufinden, was genau falsch ist.Zum Beispiel möchten wir eine Ausnahme behandeln. Schauen wir uns das folgende Beispiel an.
Ich habe eine Methode
e.printStackTrace();
verwendet, um genau zu zeigen, was falsch ist.In der Ausgabe sehen wir das folgende Ergebnis.
quelle
printStackTrace()
Gibt an, in welcher Zeile Sie einen Fehler erhalten und warum Sie einen Fehler erhalten.Beispiel:
quelle