Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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() des instances de Generator agit comme si une instruction throw était insérée dans le corps du générateur à la position actuelle de suspension, ce qui informe le générateur d'une condition d'erreur et permet au générateur de gérer l'erreur, ou d'effectuer un nettoyage et de se fermer.
L'exception à lever. Pour le débogage, il est utile d'en faire une instance de Error.
Si l'exception levée est interceptée par un bloc try...catch et que le générateur reprend pour produire d'autres valeurs, il retourne un Object avec deux propriétés :
doneUne valeur booléenne :
La valeur produite par la prochaine expression yield.
Levée si le générateur est déjà en cours d'exécution.
Si l'exception n'est pas interceptée par un bloc try...catch à l'intérieur de la fonction génératrice, elle est également levée vers l'appelant de throw().
La méthode throw(), lorsqu'elle est appelée, agit comme si une instruction throw exception; était insérée dans le corps du générateur à la position de suspension actuelle, où exception est l'exception passée à la méthode throw(). Ainsi, dans un flot typique, appeler throw(exception) fait lever une exception par le générateur. Cependant, si l'expression yield est enveloppée dans un bloc try...catch, l'erreur peut être interceptée et le flot d'exécution peut soit reprendre après la gestion de l'erreur, soit se terminer proprement.
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.
| ECMAScript® 2027 Language Specification # sec-generator.prototype.throw |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 25 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.