JavaScript Generator.prototype.throw() 方法是 JavaScript 中的内置方法,用于通过向生成器抛出错误来恢复生成器的执行。
用法:
gen.throw(exception);
参数:该函数接受如上所述和如下所述的单个参数:
- exception:该参数保存要抛出的异常。
返回值:此方法返回一个包含两个属性的对象:
- done:它有它的值
- true- 对于超过迭代序列末尾的迭代器。
- false- 对于能够产生序列中下一个值的迭代器。
- value:它包含迭代器返回的任何 JavaScript 值。
下面的示例说明了 Generator.prototype.throw() 方法,如下所示:
示例 1:此示例展示了在 Javascript 中使用 Generator.prototype.throw() 方法。
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!')));
输出:
Object { value: "Null", done: false } "Generator.prototype.throw()" Object { value: "Null", done: false }
示例 2:此示例展示了在 Javascript 中使用 Generator.prototype.throw() 方法。
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!')));
输出:
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 }
支持的浏览器:Generator.prototype.throw()方法支持的浏览器如下:
- 谷歌浏览器 39 及以上版本
- 火狐浏览器 26 及以上版本
- Opera 26 及以上
- Safari 10 及以上版本
- 边 13 及以上
我们有 Javascript 生成器方法的完整列表,要检查这些方法,请阅读 Javascript Generator Reference 文章。
相关用法
- JavaScript Generator next()用法及代码示例
- JavaScript Generator return()用法及代码示例
- JavaScript Generator.prototype.throw()用法及代码示例
- JavaScript Generator.prototype.next()用法及代码示例
- JavaScript Generator.prototype.return()用法及代码示例
- JavaScript Generator()用法及代码示例
- JavaScript Math cosh()用法及代码示例
- JavaScript Math sinh()用法及代码示例
- JavaScript Math sin()用法及代码示例
- JavaScript Math cos()用法及代码示例
- JavaScript Math tan()用法及代码示例
- JavaScript Math abs()用法及代码示例
- JavaScript Math pow()用法及代码示例
- JavaScript Math asin()用法及代码示例
- JavaScript Math acos()用法及代码示例
- JavaScript Math atan()用法及代码示例
- JavaScript Math ceil()用法及代码示例
- JavaScript Math floor()用法及代码示例
- JavaScript Math round()用法及代码示例
- JavaScript Math trunc()用法及代码示例
- JavaScript Math max()用法及代码示例
- JavaScript Math min()用法及代码示例
- JavaScript Math sqrt()用法及代码示例
- JavaScript Math sign()用法及代码示例
- JavaScript Math log()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript Generator throw() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。