JavaScript Generator throw() Method
Last Updated :
26 May, 2023
JavaScript Generator.prototype.throw() method is an inbuilt method in JavaScript that is used to resume the execution of a generator by throwing an error into it.
Syntax:
gen.throw(exception);
Parameters: This function accepts a single parameter as mentioned above and described below:
- exception: This parameter holds the exception to be thrown.
Return value: This method returns an Object containing two properties:
- done: It has the value
- true – for the iterator which is past the end of the iterated sequence.
- false – for the iterator which is able to produce the next value in the sequence.
- value: It contains any JavaScript value which is returned by the iterator.
Below examples illustrate the Generator.prototype.throw() method are listed below:
Example 1: This example shows the use of the Generator.prototype.throw() method in Javascript.
javascript
function * GFG() {
while ( true ) {
try {
yield "Null" ;
} catch (e) {
console.log( 'Generator.prototype.throw()' );
}
}
}
const geeks = GFG();
console.log(geeks.next());
console.log(geeks. throw ( new Error( 'Error caught!' )));
|
Output:
Object { value: "Null", done: false }
"Generator.prototype.throw()"
Object { value: "Null", done: false }
Example 2: This example shows the use of the Generator.prototype.throw() method in Javascript.
javascript
function * GFG(pageSize = 1, list) {
let output = [];
let index = 0;
while (index < list.length) {
try {
output = [];
for (let i = index; i < index + pageSize; i++) {
if (list[i]) {
output.push(list[i]);
}
}
yield output;
index += pageSize;
} catch (e) {
console.log( 'Generator.prototype.throw()' );
}
}
}
list = [1, 2, 3, 4, 5, 6, 7, 8]
let geek = GFG(3, list);
console.log(geek.next());
console.log(geek.next());
console.log(geek.next());
console.log(geek. throw ( new Error( 'Error caught!' )));
|
Output:
Object { value: Array [1, 2, 3], done: false }
Object { value: Array [4, 5, 6], done: false }
Object { value: Array [7, 8], done: false }
"Generator.prototype.throw()"
Object { value: Array [7, 8], done: false }
Supported Browsers: The browsers supported by Generator.prototype.throw() method are listed below:
- Google Chrome 39 and above
- Firefox 26 and above
- Opera 26 and above
- Safari 10 and above
- Edge 13 and above
We have a complete list of Javascript Generator methods, to check those please go through the Javascript Generator Reference article.