Exception Chaining in Java 1.4

Die Kapselung (Encapsulation) ist einer der wichtigsten Vorteile der objektorientierten Programmierung. Sie erlaubt es einem Objekt, einem anderen Objekt Anweisungen zu geben, ohne dass es wissen muss, wie diese Anweisungen ausgeführt werden. Dem Objekt java.awt.FlowLayout ist es völlig egal, wie javax.swing.JList seine bevorzugte Größe erreicht. Solange es eine korrekte Dimension zurückmeldet, ist das „Wie“ nicht von Bedeutung.

Leider bricht diese Detailfreiheit, die eine gute Kapselung möglich macht, in sich zusammen, wenn Fehler auftreten. In Listing A sieht man, dass es dem Scheduler-Objekt, solange alles korrekt funktioniert, völlig egal ist, wie die Task-Objekte den Wert erreichen, den sie für die Methode getDuration zurückmelden. Treten jedoch Fehler auf, untersucht der Scheduler plötzlich eine java.lang.IOException im DownloadTask, zu einem Zeitpunkt, an dem der Scheduler nicht einmal wusste, dass die IO stattfinden würde.

In Listing B ist ein sauberer, objektorientierter Weg zur Lösung dieses Problems zu sehen. Task übersetzt die Ausnahme in eine Unterklasse von Exception, mit der der Scheduler vertraut ist. Somit wird eine TaskException erstellt, mit der der Scheduler problemlos umgehen kann, ohne dass eine Scheduler-Instanz sich über eine java.io.IOException den Kopf zerbricht.

Der Nachteil dieser Lösung besteht darin, dass die IOException, mit der alles begann, nun verloren ist. Sie wurde von dem Objekt Task verbraucht und durch eine TaskException ersetzt. Dies ermöglicht zwar eine sauberere Behandlung der Ausnahme durch den Scheduler, hilft aber nicht dem Entwickler, der später vermutlich den Fehler finden und beseitigen muss.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

11 Stunden ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

2 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago