→
ジェネレーターの例外を、エラーを発生させることで再開し、done と value の2つのプロパティを持ったオブジェクトを返します。
| gen | ¶ |
|---|---|
| exception | 発生させる例外。デバッグ時には instanceof Error を行うと便利です。 |
2つのプロパティを持つ Object です。
イテレーターが反復処理の次の値を生成することができた場合、値は false になります。これは done プロパティを指定しない場合も同等です。
次の例では、簡単なジェネレーターと、throwメソッドを用いて発生させるエラーを示します。エラーは通常 try...catch ブロックによって受け取られます。
//コンソールにて
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 }