Java Reference
In-Depth Information
catch (NumberFormatException e) {
jLErgebnis.setText("Falsches Zahlenformat! ");
}
catch (Exception e) {
jLErgebnis.setText("Fehler bei der Eingabe!");
}
Listing 10.4
Spezialisierte catch-Blöcke
Hier ist auf die Reihenfolge zu achten. Trifft der in einem
catch
angegebene Exception-
Typ zu, wird der zugehörige Anweisungsblock und werden alle folgenden
catch
-Blöcke
übersprungen. Sie sollten bei der Reihenfolge darauf achten, dass die Exception-Typen
immer vom speziellsten zum allgemeinsten Typ sortiert angeordnet werden.
Eine dritte Möglichkeit sei noch erwähnt, die darin besteht, die aufgetretene Exception
nach näheren Informationen zu befragen. Die Methode
getMessage()
einer Exception
liefert einen Fehlertext zum aufgetretenen Fehler, der allerdings in englischer Sprache
abgefasst ist. Geben Sie etwa im TextField für die Stückzahl die Kommazahl 2.5 ein, dann
kann diese nicht mit
Integer.parseInt
umgewandelt werden, und der Aufruf von
e.getMessage()
liefert den String
For
input
string:
«2.5«
zurück.
Nachdem nun die Bedeutung von
try-catch
geklärt ist, soll der Vollständigkeit halber
darauf hingewiesen werden, dass Sie dieses Konstrukt um einen
finally
-Teil ergänzen
können. Damit lautet die vollständige Syntax:
try {
//zu überwachende Anweisungen
}
catch (NumberFormatException e) {
//Reaktion auf das Auftreten einer NumberFormatException
}
catch (Exception e) {
//Reaktion auf alle anderen Exceptions
}
finally {
//Anweisungen, die in jedem Fall ausgeführt werden sollen
}
Listing 10.5
Vollständige Syntax für die Behandlung von Exceptions
Es können auf den
try
-Block beliebig viele
catch
-Blöcke folgen, von denen jeder auf eine
andere Art von Exception reagiert. Es wird aber immer nur ein
catch
-Block ausgeführt.