[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Generator/throw [Back]  [Original]

Generator : mthode throw() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Generator : mthode throw()

Baseline Large disponibilit

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 mthode throw() des instances de Generator agit comme si une instruction throw tait insre dans le corps du gnrateur la position actuelle de suspension, ce qui informe le gnrateur d'une condition d'erreur et permet au gnrateur de grer l'erreur, ou d'effectuer un nettoyage et de se fermer.

Dans cet article

Syntaxe

js
generatorInstance.throw(exception)

Paramtres

exception

L'exception lever. Pour le dbogage, il est utile d'en faire une instance de Error.

Valeur de retour

Si l'exception leve est intercepte par un bloc try...catch et que le gnrateur reprend pour produire d'autres valeurs, il retourne un Object avec deux proprits :

done

Une valeur boolenne :

  • true si le flot d'excution de la fonction gnratrice a atteint la fin.
  • false si la fonction gnratrice peut encore produire des valeurs.
value

La valeur produite par la prochaine expression yield.

Exceptions

TypeError

Leve si le gnrateur est dj en cours d'excution.

Si l'exception n'est pas intercepte par un bloc try...catch l'intrieur de la fonction gnratrice, elle est galement leve vers l'appelant de throw().

Description

La mthode throw(), lorsqu'elle est appele, agit comme si une instruction throw exception; tait insre dans le corps du gnrateur la position de suspension actuelle, o exception est l'exception passe la mthode throw(). Ainsi, dans un flot typique, appeler throw(exception) fait lever une exception par le gnrateur. Cependant, si l'expression yield est enveloppe dans un bloc try...catch, l'erreur peut tre intercepte et le flot d'excution peut soit reprendre aprs la gestion de l'erreur, soit se terminer proprement.

Exemples

Utiliser la mthode throw()

Dans l'exemple suivant, on utilise un gnrateur simple et on gnre une exception grce la mthode throw. Une exception peut tre intercepte avec un bloc try...catch usuel.

js
function* gen() {
  while (true) {
    try {
      yield 42;
    } catch (e) {
      console.log("Erreur intercepte !");
    }
  }
}

const g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error("Quelque chose s'est mal pass"));
// "Erreur intercepte !"
// { value: 42, done: false }

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-generator.prototype.throw

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page