Um das ganze etwas verständlicher zu machen, habe ich ein kleines Beispiel gebaut. Das Beispiel zeigt eine Bar in der man Getränkte bestellen kann. Sollte ein Getränk nicht mehr vorhanden sein, wird eine Exception geworfen. Ebenfalls wird eine Exception geworfen, wenn ein Barkeeper gerade nicht anwesend sein sollte. Das Ende der Simulation ist erreicht, wenn die Bar geschlossen ist, was wiederum durch eine Exception vermittelt wird. Der vollständige Quellcode kann im Repository zum Blog eingesehen werden.
Klassen der Simulation |
Initialisierung der Bar |
Die Bar nimmt die Bestellungen an und prüft intern die Verfügbarkeit der entsprechenden Drinks. Sollten Fehler auftreten, werden diese an den Nutzer weitergegeben.
Aufnahme einer Bestellung |
Diese Ausgangssituation ist sowohl für das Java 6 als auch für das Java 7 Beispiel identisch. Die eigentliche Unterscheidung findet sich in der Simulationklasse der Bar.
Mit Java 6 ist es notwendig, dass alle Exceptions einzeln abgefangen werden.
Simulation mit Java 6 |
Mit Java 7 können verschiedene Exceptions zu einem Block zusammengefasst und dann gemeinsam behandelt werden.
Simulation mit Java 7 |
Sicherlich ein Feature, welches gerade für die Sammlung verschiedener Systemfehler und deren Behandlung im UI sehr nützlich ist.
Keine Kommentare:
Kommentar veröffentlichen