Die throw()
Methode übergibt dem Generator eine Exception, welche im Generator zu einem Fehler führt. Zudem wird ein Objekt mit den zwei Eigenschaften done
und value
zurückgegeben.
Syntax
gen.throw(exception)
Parameter
exception
- Die Exception, die geworfen werden soll. Für Debuggingzwecke ist es sinnvoll eine Instanz von
Error
zu verwenden.
Rückgabewert
Ein Objekt
mit zwei Eigenschaften:
done
(boolean)- Hat den Wert
true
, wenn der Iterator am Ende der Sequenz angekommen ist. In diesem Fall istvalue
, der Rückgabewert des Iterators, optional spezifiziert. - Hat den Wert
false
, wenn der Iterator einen weiteren Wert aus der Sequenz produzieren kann. Das ist gleichbedeutend damit, dass diedone
Eigenschaft nicht spezifiziert ist.
- Hat den Wert
value
- Ein JavaScript Wert, der von einem Iterator zurückgegeben wird. Kann weggelassen werden, wenndone
true
ist.
Beispiele
Einsatz von throw()
Das folgende Beispiel zeigt einen einfachen Generator und einen Fehler der mit der throw
Methode erzeugt wird. Ein Fehler kann mit try...catch
abgefangen werden.
function* gen() {
while(true) {
try {
yield 42;
} catch(e) {
console.log('Error caught!');
}
}
}
var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error('Something went wrong'));
// "Error caught!"
// { value: 42, done: false }
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Generator.prototype.throw' in dieser Spezifikation. |
Standard | Initiale Definition. |
ECMAScript (ECMA-262) Die Definition von 'Generator.prototype.throw' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.