| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Generator/throw | [Back] [Original] |
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 Gerten und in vielen Browserversionen. Sie ist seit September 2016 browserbergreifend verfgbar.
Die throw()-Methode von Generator-Instanzen wirkt so, als ob eine throw-Anweisung an der aktuellen angehaltenen Position im Krper des Generators eingefgt wird. Dies informiert den Generator ber einen Fehlerzustand und ermglicht es ihm, den Fehler zu behandeln, Bereinigungen durchzufhren oder sich selbst zu schlieen.
generatorInstance.throw(exception)
exceptionDie zu werfende Ausnahme. Fr Debugging-Zwecke ist es ntzlich, sie zu einem instanceof Error zu machen.
Wenn die geworfene Ausnahme von einem try...catch abgefangen wird und der Generator fortfhrt, weitere Werte zu liefern, wird ein Object mit zwei Eigenschaften zurckgegeben:
doneEin boolescher Wert:
true, wenn der Kontrollfluss der Generatorfunktion das Ende erreicht hat.false, wenn die Generatorfunktion in der Lage ist, weitere Werte zu erzeugen.valueDer aus dem nchsten yield-Ausdruck gelieferte Wert.
TypeErrorWird geworfen, wenn der Generator bereits luft.
Wenn die exception nicht innerhalb der Generatorfunktion von einem try...catch abgefangen wird, wird sie auch an den Aufrufer von throw() geworfen.
Die throw()-Methode kann, wenn sie aufgerufen wird, als ob eine throw exception;-Anweisung an der aktuellen angehaltenen Position im Krper des Generators eingefgt wird, betrachtet werden, wobei exception die an die throw()-Methode bergebene Ausnahme ist. Daher wird der Generator bei einem typischen Ablauf durch das Aufrufen von throw(exception) werfen. Wenn der yield-Ausdruck jedoch in einem try...catch-Block eingeschlossen ist, kann der Fehler abgefangen und der Kontrollfluss entweder nach der Fehlerbehandlung fortgesetzt oder geordnet beendet werden.
Das folgende Beispiel zeigt einen Generator und einen Fehler, der mit der throw-Methode geworfen wird. Ein Fehler kann wie blich von einem try...catch-Block abgefangen werden.
function* gen() {
while (true) {
try {
yield 42;
} catch (e) {
console.log("Error caught!");
}
}
}
const g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error("Something went wrong"));
// "Error caught!"
// { value: 42, done: false }
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-generator.prototype.throw |
GeneratorIteratorObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |