Generator.prototype.throw()
The throw() method resumes the
execution of a generator by throwing an error into it and returns an object with two
properties done and value.
Syntax
throw(exception)
Parameters
exception-
The exception to throw. For debugging purposes, it is useful to make it an
instanceofError.
Return value
An Object with two properties:
done-
A boolean value:
trueif the iterator is past the end of the iterated sequence. In this casevalueoptionally specifies the return value of the iterator.falseif the iterator was able to produce the next value in the sequence. This is equivalent to not specifying thedoneproperty altogether.
value-
Any JavaScript value returned by the iterator. Can be omitted when
doneis true.
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!');
}
}
}
const g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error('Something went wrong'));
// "Error caught!"
// { value: 42, done: false }
Specifications
| Specification |
|---|
| ECMAScript Language Specification # sec-generator.prototype.throw |
Browser compatibility
BCD tables only load in the browser