Java bietet Exceptions, die eine
elegante und effektive Fehler- und Ausnahmebehandlung ermöglichen.
Das dazu verwendete Sprachkonstrukt sieht wie folgt aus:
try { Operation }
catch ( Exception1 ) { Behandlung1 }
catch ( Exception2 ) { Behandlung2 }
finally { Aufräumen }
Eine kritische Operation wird ausgeführt.
Wenn dabei ein Fehler auftritt, wird eine Exception aus ausgelöst
(im Java-Kontext spricht man davon daß eine Exception ,,geworfen``
wird). Zum Beispiel verursacht ein unzulässiger Array-Zugriff eine
ArrayIndexOutOfBoundsException während ein Zugriff auf eine nicht
vorhandene Datei eine FileNotFoundException ,,wirft``.
Eine Division durch 0 hat eine ArithmeticException zur Folge.
Falls eine Exception
auftritt wird
die Operation abgebrochen und das jeweilige catch-Konstrukt ,,fängt``
die Exception auf und veranlaßt die dafür vorgesehene Behandlung.
In jedem Falle (ob nun eine Exception auftritt oder nicht) wird
anschließend
der durch finally definierte Block ausgeführt um eine Nachbereitung der
Operation zu gewährleisten (z.B. Schließen von Dateien etc.).