Bestimmt eine oder mehrere Anweisungen, die ausgeführt werden, wenn während einer Try-Anweisung ein Wert oder Fehler geworfen (ausgelöst) wird.
Catch ErrorKlasse as AusgabeVar { Anweisungen }
Typ: Klasse
Die Wertklasse, die abgefangen werden soll, z.B. Error
, TimeoutError
oder MeinEigenerError
. Dies kann auch eine kommagetrennte Liste von Klassen sein. Klassen müssen mit ihrem exakten vollständigen Namen angegeben werden (also keine Ausdrücke), da der Prototyp jeder Klasse während der Skriptausführung aufgelöst wird. Es können sowohl interne als auch benutzerdefinierte Klassen verwendet werden, auch solche, die nicht von Error abgeleitet sind.
Wenn keine Klassen angegeben sind, wird standardmäßig Error
verwendet.
Mit catch Any
kann alles abgefangen werden.
Es wird ein Ladezeitfehler angezeigt, wenn ein ungültiger Klassenname verwendet wird oder wenn der Zugriff auf eine Klasse nicht möglich ist, weil eine lokale Variable mit demselben Namen existiert.
Typ: Variable
Die Ausgabevariable, in der der geworfene Wert gespeichert werden soll, was typischerweise ein Error-Objekt ist. Dies darf keine dynamische Variable sein.
Wenn weggelassen, ist es nicht möglich, direkt auf den geworfenen Wert zuzugreifen, aber er kann mittels Throw ohne Parameter erneut geworfen werden.
Anweisungen, die ausgeführt werden sollen, wenn ein Wert oder Fehler geworfen wird.
Geschweifte Klammern sind in der Regel nicht erforderlich, wenn nur eine einzige Anweisung verwendet wird. Weitere Informationen finden Sie unter {...} (Block).
Es können mehrere Catch-Anweisungen hintereinander verwendet werden, die jeweils eine andere Klasse (oder mehrere Klassen) angeben. Wenn der Wert keine Instanz einer der aufgelisteten Klassen ist, wird er nicht von diesem Try-Catch abgefangen, aber möglicherweise von einem weiter oben im Aufrufstapel.
Jedes Catch muss zu einem darüber liegenden Try gehören (mit ihm verbunden sein). Ein Catch bezieht sich immer auf das nächstmögliche unbeanspruchte Try über ihm, es sei denn, ein Block wurde verwendet, um dieses Verhalten zu ändern.
Die Parameterliste kann optional in runde Klammern gesetzt werden - in diesem Fall ist das Leer- oder Tabulatorzeichen nach catch
optional.
Nach Catch kann optional ein Else folgen, das ausgeführt wird, wenn im zugehörigen Try-Block keine Ausnahme ausgelöst wurde.
Je nach Bedarf kann der One True Brace (OTB) Style verwendet werden. Zum Beispiel:
try { ... } catch Error { ... }
Ladezeitfehler können nicht abgefangen werden, da sie bereits vor der Ausführung der Try-Anweisung auftreten.
Try, Throw, Error-Objekt, Else, Finally, Blöcke, OnError
Siehe Try.