Generator.prototype.throw()

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.

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 }

Specifications

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Generator.prototype.throw' en esta especificación.
Standard Initial definition.
ECMAScript (ECMA-262)
La definición de 'Generator.prototype.throw' en esta especificación.
Living Standard  

Browser compatibility

BCD tables only load in the browser

See also