Java Reference
In-Depth Information
10.3.2 Benutzerdefinierte Exceptions
Bisher wurde nur besprochen, wie Sie auf Exceptions reagieren. Woher genau kommen
nun die Exceptions? In den häufigsten Fällen werden sie in Pogrammteilen erzeugt, die
Sie nicht selbst codiert haben. Das kann im Laufzeitsystem oder in irgendwelchen Stan-
dardbibliotheken, die Sie einbinden, der Fall sein.
In diesem Abschnitt soll erläutert werden, wie Sie auch in Ihrem eigenen Programm-
code Exceptions auslösen können. Am Beispiel unseres Programms Einkauf soll eine
erste Möglichkeit gezeigt werden. Ursprünglich hatten wir in der Methode zum Berech-
nen des Nettopreises mit einer if -Anweisung auf die fehlende Eingabe der Stückzahl
reagiert und direkt eine Fehlerausgabe im Ergebnislabel erzeugt. Anstelle der unmittel-
baren Fehlerausgabe im Label können wir dort auch eine Exception »werfen«. Der fol-
gende Quellcodeauszug zeigt, wie als Reaktion auf fehlende Eingaben in den
Textfeldern Exceptions ausgelöst werden:
10
private void berechnen() {
int stueckzahl;
double stueckpreis, rabattsatz, bruttopreis, rabatt,
einkaufspreis;
try {
if (jTFStueckzahl.getText().equals("")) throw new
NumberFormatException("Bitte geben Sie eine Stückzahl an.");
if (jTFStueckpreis.getText().equals("")) throw new
NumberFormatException("Bitte geben Sie einen Stückpreis an.");
if (jTFRabatt.getText().equals("")) throw new
NumberFormatException("Bitte geben Sie einen Rabattsatz an.");
...
Listing 10.6 Eigene Exceptions werfen
Wie dem Listing zu entnehmen ist, können Sie mit dem Schlüsselwort throw Exceptions
auslösen. Analog zu dem englischen Ausdruck throw spricht man vom Werfen einer
Exception .
Mit der Anweisung
throw new NumberFormatException("Bitte geben Sie eine Stückzahl an.");
wird mit new ein NumberFormatException -Objekt erzeugt. Der Konstruktor erwartet als
Argument eine Fehlermeldung als String. Diese Fehlermeldung kann dann im catch -
Block mit der Methode getMessage() in die Fehlerausgabe übernommen werden.
Search WWH ::




Custom Search