Generator.prototype.throw()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
La méthode throw()
lève une erreur dans un générateur.
Syntaxe
js
gen.throw(exception);
Paramètres
Valeur de retour
Un Object
avec deux propriétés :
-
done
(un booléen)- Qui vaut
true
lorsque l'itérateur a fini de parcourir la suite. Dans ce cas,value
correspondra éventuellement à la valeur de retour de l'itérateur. - Qui vaut
false
si l'itérateur a pu produire la prochaine valeur de la série.
- Qui vaut
-
value
: une valeur renvoyée par l'itérateur. Lorsquedone
vauttrue
, cette valeur peut être absente ou valoirundefined
.
Exemples
Utiliser throw()
Dans l'exemple suivant, on utilise un générateur simple et on génère une exception grâce à la méthode throw()
. Une exception peut être interceptée avec un bloc try...catch
usuel.
js
function* gen() {
while (true) {
try {
yield 42;
} catch (e) {
console.log("Erreur interceptée !");
}
}
}
var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error("Quelque chose s'est mal passé"));
// "Erreur interceptée !"
// { value: 42, done: false }
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-generator.prototype.throw |
Compatibilité des navigateurs
BCD tables only load in the browser