Open In App

JavaScript Generator throw() Method

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: 

Return value: This method returns an Object containing two properties: 



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.




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.




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: 

We have a complete list of Javascript Generator methods, to check those please go through the Javascript Generator Reference article.


Article Tags :