Visitar URL original
Generator.prototype.throw() - JavaScript | MDN

Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

Generator.prototype.throw()

Baseline
Ampliamente disponible

Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde septiembre de 2016.

El método throw() reanuda la ejecución de un generador al lanzar un error en éste y regresar un objeto con las dos propiedades done y value.

Sintaxis

gen.throw(excepción)

Parámetros

excepción

La excepción a lanzar. Al hacer depuración, es útil que la excepción cumpla con instanceof Error.

Valor de retorno

Un Object con dos propiedades:

  • done (booleano)

    • Es verdadero si el iterador ya llegó al final de la secuencia. En este caso valor define opcionalmente el valor de retorno del iterador.
    • Es falso si el iterador puede dar un siguiente valor en la secuencia. Es equivalente a no definir la propiedad done.
  • value - cualquier valor Javascript regresado por el iterador. Éste puede ser omitido si done is verdadero.

Examples

Using throw()

The following example shows a simple generator and an error that is thrown using the throw method. An error can be caught by a try...catch block as usual.

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

var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error("Something went wrong"));
// "Error caught!"
// { value: 42, done: false }

Especificaciones

Especificación
ECMAScript® 2027 Language Specification
# sec-generator.prototype.throw

Compatibilidad con navegadores

See also