Signalisiert das Vorkommen eines Fehlers. Dieses Signal kann mit einer Try-Catch-Anweisung abgefangen werden.
Throw Wert
Ein Wert, der geworfen (ausgelöst) werden soll; typischerweise ein Error-Objekt. Zum Beispiel:
throw ValueError("Parameter #1 ungültig", -1, derSchlechteParam)
Es können alle möglichen Werte geworfen werden, aber wenn Catch ohne Angabe einer Klasse verwendet wird (oder wenn Try ohne Catch oder Finally verwendet wird), werden nur Instanzen der Error-Klasse abgefangen.
Während sich die Ausführung innerhalb eines Catch befindet, kann Wert weggelassen werden, um den abgefangenen Wert erneut zu werfen (wodurch die Notwendigkeit vermieden wird, eine Ausgabevariable nur für diesen Zweck anzugeben). Dies wird sogar innerhalb einer verschachtelten Try-Finally-Anweisung unterstützt, aber nicht innerhalb einer verschachtelten Try-Catch-Anweisung. Die Zeile mit throw
muss nicht physisch im Körper der Catch-Anweisung enthalten sein; sie kann von einer aufgerufenen Funktion verwendet werden.
Das Leer- oder Tabulatorzeichen nach throw
ist optional, wenn der Ausdruck in runden Klammern gesetzt ist, z.B. throw(Error())
.
Ein geworfener Wert oder Laufzeitfehler kann mit Try-Catch abgefangen werden. In solchen Fällen wird die Ausführung in die Catch-Anweisung oder in die nächste Anweisung nach der Try-Anweisung transferiert. Wenn ein geworfener Wert nicht abgefangen wird, geschieht folgendes:
Error-Objekt, Try, Catch, Finally, OnError
Siehe Try.