Rouven: Exception und printStackTrace()

Beitrag lesen

Guten Morgen!

Also, der Reihe nach.

Wo ist da der unterschied wenn ich es definiere
catch(Throwable t) {
  System.out.println("Fehler: " + t);
}
Würde das gehen und warum nutzt man immer das printStackTrace() ?

Das würde gehen. Wenn du in Java ein Objekt mit einem String zusammenführst (sei dies ein Integer oder ein anderes beliebiges Objekt), dann wird Java die toString()-Methode automatisch einfügen. Was du also in Wirklichkeit da stehen hast ist:
System.out.println("Fehler: " + t.toString());

So, dann die andere Sache: toString() gibt in seiner Standardform nur eine kurze Fehlermeldung aus, wie z.B. NullPointerException, also was eigentlich gerade passiert ist. Das hilft dem Entwickler meist nicht viel weiter, zum Debuggen ist es hilfreich zu wissen WO der Fehler aufgetreten ist. printStackTrace verfolgt den Fehler zurück zu seinem Ursprung, da kommt dann Klasse und Zeile raus.
Wie man der Dokumentation entnehmen kann (link:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html#printStackTrace()] führt printStackTrace vor dem Trace selber ein toString() aus.

Gruß

MfG
Rouven

--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(