Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die throw-Anweisung löst eine benutzerdefinierte Ausnahme aus. Die Ausführung der aktuellen Funktion wird gestoppt (die Anweisungen nach throw werden nicht ausgeführt) und die Kontrolle wird an den ersten catch-Block im Aufrufstapel übergeben. Wenn kein catch-Block unter den aufrufenden Funktionen existiert, wird das Programm beendet.
Der Ausdruck, der geworfen werden soll.
Die throw-Anweisung ist in allen Kontexten gültig, in denen Anweisungen verwendet werden können. Ihre Ausführung erzeugt eine Ausnahme, die durch den Aufrufstapel dringt. Weitere Informationen zum Fehler-Bubbling und zur Fehlerbehandlung finden Sie unter Ablaufsteuerung und Fehlerbehandlung.
Das throw-Schlüsselwort kann von jeder Art von Ausdruck gefolgt werden, zum Beispiel:
In der Praxis sollte die von Ihnen geworfene Ausnahme immer ein Error-Objekt oder eine Instanz einer Error-Unterklasse wie z.B. RangeError sein. Dies liegt daran, dass Code, der den Fehler auffängt, möglicherweise erwartet, dass bestimmte Eigenschaften wie message im aufgefangenen Wert vorhanden sind. Web-APIs werfen beispielsweise typischerweise DOMException-Instanzen, die von Error.prototype erben.
Die Syntax verbietet Zeilenumbrüche zwischen dem throw-Schlüsselwort und dem zu werfenden Ausdruck.
Der obige Code wird durch die automatische Semikolon-Einfügung (ASI) umgewandelt in:
Dies ist ungültiger Code, da im Gegensatz zu return throw von einem Ausdruck gefolgt werden muss.
Um dieses Problem zu vermeiden (um ASI zu verhindern), könnten Sie Klammern verwenden:
Dieses Beispiel definiert eine Funktion, die einen TypeError wirft, wenn die Eingabe nicht vom erwarteten Typ ist.
Dieses Beispiel ruft eine asynchrone Funktion, die auf Rückrufe basiert, auf und wirft einen Fehler, wenn der Rückruf einen Fehler erhält.
Fehler, die auf diese Weise geworfen werden, können vom Aufrufer nicht abgefangen werden und führen zum Absturz des Programms, es sei denn, (a) die readFile-Funktion fängt den Fehler selbst ab oder (b) das Programm läuft in einem Kontext, der Top-Level-Fehler auffängt. Sie können Fehler natürlicher handhaben, indem Sie den Promise()-Konstruktor verwenden.
| ECMAScript® 2027 Language Specification # sec-throw-statement |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.