Java Reference
In-Depth Information
Die beiden
eval()
-Anweisungen sowie die reine Textausgabe sind nun von einem
try
-Block
umgeben. Wieder wird die erste Ausgabe problemlos erzeugt. Die folgende Anweisung löst
dann wie im vorherigen Beispiel die Ausnahme aus. Die Anweisung wird nicht durchge-
führt und der
try
-Block wird unmittelbar verlassen. Die nachfolgende Ausgabe wird nicht
erreicht. Der Programmluss verzweigt unmittelbar in den
catch
-Block. Dort wird der Inhalt
des generierten Ausnahmeobjekts angezeigt.
Wenn der
catch
-Block abgearbeitet wurde, läut das Skript mit der nächsten Anweisung
hinter dem
try-catch
-Konstrukt weiter.
Bild 9.5■
Nach Behandlung der Ausnahme ist
das Skript weitergelaufen.
9.4.4■Selbstdeinierte Ausnahmen erzeugen und verwenden
Man kann auch in JavaScript selbstdeinierte Ausnahmen erzeugen und diese dann ähnlich
wie die Standardausnahmen von JavaScript verwenden. Damit erweitern Sie die Flexibilität
der Anwendung von Ausnahmen.
9.4.4.1■Erstellen einer selbstdeinierten Ausnahme
Die Klasse
Error
kann sowohl als Funktion über
Error()
als auch - wie jede Funktion in
JavaScript - als Konstruktor über
new Error()
verwendet werden. Damit erzeugt man dann
ein neues
Error
-Objekt. Interessant ist dabei, dass man mit
Error([Meldung])
eine selbst-
deinierte Fehlermeldung für das Objekt aufbauen kann, die sich mit der Eigenschat
message
auswerten lässt. Daraus resultiert der hauptsächliche Nutzen von selbstdeinierten
Ausnahmen. Beispiel:
Listing 9.12■
Erzeugen einer selbstdeinierten Ausnahme mit Meldung
a = new Error("Nicht doch");
Nun braucht man in JavaScript durch die wenigen Datentypen und die lose Typisierung
sogar nicht einmal explizit ein Ausnahmeobjekt zu erstellen. Man kann jeden (!) Datentyp
in JavaScript als Ausnahme werfen. Es kommt nur auf die Anwendung an - eben das
Wer-
fen
eines Datentyps.
9.4.4.2■Auswerfen von Ausnahmen mit throw
Mit der Erzeugung von selbstdeinierten Ausnahmen alleine ist es nicht getan. Diese müs-
sen auch zu einer speziizierten Situation ausgeworfen werden. Und das machen Sie mit
dem Schlüsselwort
throw
. Das ist eine Sprunganweisung mit Rückgabewert - eben das
Ausnahmeobjekt. Verwandt ist die Situation mit dem Aufruf einer
return
-Ausweisung. Die
Syntax sieht so aus:
Search WWH ::
Custom Search