Generator.prototype.throw()
La méthode throw()
lève une erreur dans un générateur.
Syntaxe
js
gen.throw(exception);
Paramètres
exception
-
L'exception à lever. On préfèrera généralement utiliser un objet qui est une instance d'
Error
.
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