Java Reference
In-Depth Information
Klammern von dem catch -Zweig ist ein Bezeichner für das konkrete Ausnahmeobjekt. In
dem catch -Zweig selbst stehen einfach innerhalb geschweiter Klammern die Anweisun-
gen, die beim Autreten der Ausnahme durchgeführt werden sollen.
Wenn also eine der Anweisungen innerhalb des try -Blocks eine Ausnahme erzeugt, wird diese
durch die passenden catch -Anweisungen aufgefangen und entsprechend behandelt (sofern
die catch -Anweisung dafür die passende Behandlung enthält). Werden hingegen alle Anwei-
sungen in dem try -Block ohne Probleme abgearbeitet, wird der catch -Block übersprungen .
Das Autreten einer Ausnahme innerhalb eines try-catch -Konstrukts führt nun auch nicht
mehr dazu, dass das Skript beendet wird. Es läut mit den Anweisungen hinter dem try-
catch -Konstrukt weiter, nachdem die Anweisungen im catch -Teil abgearbeitet wurden. Das
Ausnahmeobjekt ist damit auch vom Laufzeitsystem beseitigt. Man sagt, die aufgetretene
Ausnahme wurde konsumiert .
HInTErGrunDInFOrMATIOn: Der Begrif try sagt übrigens bereits sehr
trefend, was in diesem Block passiert. Es wird versucht , den Code innerhalb
des try -Blocks auszuführen. Wenn ein Problem autauchen sollte (sprich, es
wird eine Ausnahme ausgeworfen), wird diese sofort entsprechend im passen-
den catch -Block aufgefangen und alle nachfolgenden Schritte in diesem try -
Block werden nicht mehr durchgeführt.
Wenn Sie in JavaScript einen try -Block notieren, muss zwingend ein catch -Block folgen.
Fehlt dieser, ist die Reaktion der Browser jedoch uneinheitlich. Einige Browser zeigen eine
Fehlermeldung beim Fehlen des catch -Blocks an, andere Browser zeigen dummerweise gar
nichts mehr an. Der try -Block wird einfach ignoriert. Das ist für den Besucher der Webseite
besser, denn Besucher sind nicht an Fehlermeldungen interessiert, aber schlecht für den
Programmierer der Webseite, denn er erkennt das Problem möglicherweise nicht mehr.
HInWEIS: Beachten Sie, dass JavaScript lose typisiert ist und nur vier Daten-
typen kennt. Eine Unterscheidung des Typs des Ausnahmeobjekts über einen
speziischen Referenztyp, wie man es etwa in Java oder C# macht, ist nicht
möglich. Deshalb kann man auch nicht mehrere catch -Blöcke einem try -Block
zuordnen, wie es etwa in Java oder C# üblicherweise gemacht wird, um damit
eine unterschiedliche Reaktion je nach Typ der Ausnahme zu implementieren.
Stattdessen notieren Sie einfach getrennte try-catch -Strukturen für jeden ein-
zelnen Fall. Oder Sie verschachteln try-catch -Strukturen, indem Sie in einem
catch -Block wieder try-catch -Blöcke notieren.
Was Sie nun im catch -Teil konkret tun, ist nicht weiter festgelegt. Sie können jede Ihnen
sinnvoll erscheinende Maßnahme ergreifen, die das Skript folgerichtig weiterlaufen lässt.
Ot ist das eine Fehlermeldung mit anschließendem Rücksprung zu der Situation, die mit
der ausgelösten Ausnahme sinnvoll umgehen lässt, etwa im Fall einer Benutzereingabe ein
Fokussieren des kritischen Eingabefelds. Oder aber Sie können einen alternativen Weg zur
Durchführung einer Aktion probieren, wenn der erste Weg gescheitert ist. In letzterem Fall
werden Sie ot auch try-catch -Strukturen verschachteln.
 
Search WWH ::




Custom Search