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
truelorsque l'itérateur a fini de parcourir la suite. Dans ce cas,valuecorrespondra éventuellement à la valeur de retour de l'itérateur. - Qui vaut
falsesi l'itérateur a pu produire la prochaine valeur de la série.
- Qui vaut
value: une valeur renvoyée par l'itérateur. Lorsquedonevauttrue, 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