Generator.prototype.throw()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 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
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® 2026 Language Specification> # sec-generator.prototype.throw> |
Compatibilité des navigateurs
Chargement…