Generator.prototype.throw()
La méthode throw
()
lève une erreur dans un générateur.
Syntaxe
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.
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
Spécification | Statut | Commentaires |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Generator.prototype.throw' dans cette spécification. |
Standard | Définition initiale. |
ECMAScript (ECMA-262) La définition de 'Generator.prototype.throw' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser