Open In App

JavaScript Generator throw() Method

Last Updated : 26 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads