Freitag, 13. Februar 2009
Throwable/Exception in einen String wandeln
Ich möchte eine Exception anzeigen. Die Methode exception.getMessage() liefert mir bestenfalls einen beschreibenden Text, aber nicht die Stelle, wo die Exception aufgetreten ist. Wie gehe ich vor?

Mit dieser Methode kann man den kompletten Stacktrace einer Exception in einen String schreiben:

public static String getStackTrace(Throwable aThrowable) {
StringWriter strWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(strWriter);
aThrowable.printStackTrace(printWriter);
return strWriter.toString();
}

... link (0 Kommentare)   ... comment


Ausgabe formatieren
Mit String.format kann man ab Java 1.5 einen Text inklusive Variablenwerte komfortable anzeigen

Syntax wie mit printf in C:
%[flags][width][.precision][length]specifier

Für die Formatierung stehen folgende Format-Spezifizierer zur Verfügung:

%b : Boolean
%c : Character
%s : String
%d : Dezimalzahl
%x : Hexadezimaldarstellung
%X : ^^ mit Großbuchstaben
%f : Fließkommazahl
%e : Wissenschaftliche Notation
%E : ^^ mit großem "E"
%g : Fließkommazahl in gemischter Schreibweise
%G : ^^ mit großem "E"
%t : Datum und Zeit
%n : neue Zeile
%% : Prozentzeichen
%c : Unicode-Zeichen

Nähere Informationen in den JDK JavaDocs zur Klasse java.util.Formatter.

Beispiele:

1. Strings:

String name = "Max";
String day = "Montag";
String.format("Hallo %s! Heute ist %s.", name, day);
// Ausgabe: Hallo Max! Heute ist Montag.


2. Eine Dezimalzahl auf 2 Stellen formartieren, bei 1 stelligen Zahlen eine führende 0 anhängen:

// flag = 0 --> mit 0-en auffüllen
// width = 2 --> auf 2 Stellen formatieren
// specifier = d --> Dezimalzahl
String.format("%02d", 1) // Ausgabe: 01


3. Aktuelles Datum und Uhrzeit ausgeben:

System.out.println(String.format("Datum %tD, Uhrzeit %tT", new Date(), new Date()));

4. Datum nach ISO-8601 (YYYY-MM-DD) formatieren:

System.out.println(String.format("%tF", new Date()));

... link (0 Kommentare)   ... comment