jpmorgan
Logo Sylphen
 
 

Tipps für Java-Entwickler

In JDK 1.4 wurde die API der java.lang.Exception um einen Konstruktor public Exception(String aMsg, Throwable aCause) erweitert, sowie um eine methode public Throwable getCause(). Die sind dazu da, eine weitere Exception als Grund für eine neue Exception anzugeben, so dass man z.b. Code wie diesen schreiben kann:

try {
} catch (SQLException e) {
throw new MyOwnException("Internal problem...", e); }

Um nun in Logfiles, in die solche Exceptions wie die MyOwnException ausgegeben werden, sehen zu können, was die Exception ausgelöst hat, ist die neue getCause()-Methode da. Die wird von dem neuen 1.4er Algorithmus zur Ausgabe von Stacktraces aufgerufen.

Die neue Art der Ausgabe kennt Ihr sicher schon. Sie gibt die relevanten Teile aller ineinander geschachtelt geworfenen Exceptions aus, jeweils getrennt durch "Caused by:". Das ist sehr hilfreich, weil man gleich den Ur-Fehler sieht und sich nicht erst mühsam durchhangeln muss.

Hier kommt der Tipp, was Ihr beachten müsst, wenn Ihr Exception-Klassen schreibt, damit die Ausgabe der Verkettung klappt:

Es ist wichtig, dass Exception-Klassen die Cause-Exception initialisieren.
Wenn Ihr für das JDK 1.4 entwickelt, müsst Ihr lediglich in Eurem Konstruktor super(aMsg, aCause) aufrufen müsst. Denkt aber daran, dass dieser Super-Konstruktor erst seit 1.4 vorhanden ist. Wenn Ihr Ihn also aufruft, wird das mit 1.3 nicht kompilieren. Um die Klasse kompatibel mit 1.3 zu machen, könnt Ihr einfach die Cause-Exception in einer Membervariable speichern und getCause() implementieren. So einfach ist das.

Sylphen GmbH & Co. KG

Sylphen ist ein IT-Systemhaus mit Niederlassungen in Gießen, Frankfurt und Hamburg und unterstützt Sie durch Berater und Programmierer bei der effizienten Software-Entwicklung im Bereich Java, SQL und Integration. Unter 0641-94468-0 oder info@sylphen.com beraten wir Sie gerne unverbindlich.
zurück zu Customer-Solutions


Oracle
Cisco
google-adwords-professional

Partner Pixelbox