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.
  • value : une valeur renvoyée par l'itérateur. Lorsque done vaut true, cette valeur peut être absente ou valoir undefined.

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 Latest Draft (ECMA-262)
La définition de 'Generator.prototype.throw' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet 39Edge Support complet 13Firefox Support complet 26IE Aucun support NonOpera Support complet OuiSafari Support complet 10WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet 13Firefox Android Support complet 26Opera Android Support complet OuiSafari iOS Support complet 10Samsung Internet Android Support complet Ouinodejs Support complet 4.0.0
Support complet 4.0.0
Support complet 0.12
Désactivée
Désactivée From version 0.12: this feature is behind the --harmony runtime flag.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,