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