Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
throw() は Generator インスタンスのメソッドで、ジェネレーターの本体内で、現在の停止位置に throw 文が挿入されたかのように振る舞い、ジェネレーターがエラー状態にあることを知らせ、エラーを処理したり、クリーンアップ処理を行って自分自身を閉じたりすることができるようにします。
発生させる例外。デバッグ時には instanceof Error を行うと便利です。
2 つのプロパティを持つ Object です。
done論理値です。
次の yield 式から得られる値です。
ジェネレーターが既に実行中である場合に発生します。
exception がジェネレーター関数内の try...catch で捕捉されなかった場合、throw() の呼び出し側にも例外が送出されます。
throw() メソッドが呼び出されると、ジェネレーターの本体内で現在中断されている位置に throw exception; 文が挿入されたかのように見なされます。ここで exception は throw() メソッドに渡された例外です。したがって、通常のフローでは、throw(exception) を呼び出すとジェネレーターが例外を発生します。ただし、yield 式が try...catch ブロックで囲まれている場合、エラーが補足され、エラー処理後に制御フローを再開するか、正常に終了させることが可能です。
次の例では、簡単なジェネレーターと、 throw メソッドを用いて発生させるエラーを示します。エラーは通常 try...catch ブロックによって受け取られます。
| ECMAScript® 2027 Language Specification # sec-generator.prototype.throw |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年3月2日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.