Java Reference
In-Depth Information
behandelt wurde. Wird die Ausnahme nicht behandelt, wird das Programm oder Skript wie
gesagt beendet. Genau so etwas sehen wir in unserem ersten Exempel.
Wenn eine Ausnahme erzeugt wird, wird von dem Laufzeitsystem ein Mitteilungsobjekt
generiert, welches genaue Informationen über die aktuelle Störung enthält. Auf Grund
dieser Information kann der Programmierer gezielte Gegenmaßnahmen ergreifen oder aber
auch einfach nur auf die pure Existenz des Mitteilungsobjekts eine Standardgegenmaß-
nahme ergreifen. Eine Ausnahme ist aber noch mehr als ein reines Mitteilungsobjekt mit
speziischen Informationen. Das Autreten eines Ausnahmeobjekts unterbricht wie gesagt
unmittelbar einen normalen Skriptablauf und veranlasst den ausführenden Interpreter,
nach einer geeigneten Behandlungsstruktur zu suchen. Dabei entsteht im Skript ein Lauf-
zeitfehler, der sich relativ standardisiert beschreiben lässt. Die ECMAScript Edition stellt
ein Fehlerobjekt Error bereit und Instanzen von Error -Objekten werden als Ausnahmen
ausgeworfen, wenn ein bekannter Laufzeitfehler autritt.
PrAXISTIPP: In der ECMAScript Language Speciication Edition gibt es neben
Error selbst weitere Ausnahmetypen wie ReferenceError , EvalError ,
TypeError , SyntaxError , URIError oder RangeError , die wir hier aber nicht
im Detail besprechen und die in der Praxis kaum eine Rolle spielen, weil man
die Typen bei der Reaktion kaum unterscheidet, zumal die Umsetzung der spezi-
ischen Ausnahmeobjekte in den verschiedenen Browsern sehr unterschiedlich
realisiert ist. In den meisten Fällen sind Sie also bei der Behandlung von Stan-
dardausnahmen auf der besseren Seite, wenn Sie nur Error verwenden, sofern
Sie überhaupt den Typ beachten wollen.
9.4.3■Das Aufangen einer Ausnahme
Wenn eine Ausnahme in einem Skript aufgetreten ist, müssen Sie diese wie gesagt zwin-
gend behandeln bzw. aufangen, sonst wird das Skript abgebrochen. Um nun eine ausge-
worfene Ausnahme behandeln zu können, umgibt man den Aufruf einer kritischen Funk-
tion, Methode oder Anweisungsstruktur, die möglicherweise eine Ausnahme auswirt, mit
einem umgebenden try-catch -Block. Dies sieht schematisch so aus:
Listing 9.10■ Die Struktur von try-catch
try {
[kritische Anweisung(en)]
}
catch ([Ausdruck]) {
[Maßnahmen für den Ausnahmefall]
}
Alle potenziell kritischen Anweisungen stehen bei dieser Konstruktion in dem try -Zweig.
Sie sollten da immer alle Anweisungen notieren, die nur zusammen einen Vorgang beschrei-
ben, also nicht nur die kritische Anweisung selbst. In den try -Block gehört ein kompletter
Vorgang , der entweder vollständig abgearbeitet werden muss oder bei dem man eine kom-
plette Gegenreaktion im Fall einer Ausnahme implementieren muss. Der Ausdruck in den
 
Search WWH ::




Custom Search