Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Fiber::raise()メソッドの使い方

raiseメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

raiseメソッドは、指定したFiberオブジェクトの実行コンテキスト内で、例外を発生させるメソッドです。RubyにおけるFiberは、軽量なコルーチンであり、プログラムの実行フローを一時停止したり、別のFiberに切り替えて再開したりできる機能を提供します。

通常、プログラム内で例外を発生させる場合はraiseキーワードを使用しますが、これは現在の実行コンテキストで例外を引き起こします。それに対し、Fiber#raiseメソッドは、Fiber#resumeメソッドによって一時停止中の特定のFiberに対して、そのFiberの内部で例外を発生させることができます。これにより、外部からFiberの実行を強制的に中断させたり、エラー状態を通知したりすることが可能になります。

引数には、発生させたい例外の種類(例: StandardError)、メッセージ、バックトレースなどを指定できます。引数なしで呼び出した場合は、デフォルトでRuntimeErrorが発生します。

このメソッドは、Fiber間で協調的に処理を進める際に、特定のFiberに異常を通知し、そのFiberの実行を外部から制御する強力な手段となります。例えば、メイン処理がサブのFiberに処理を依頼しているが、何らかの理由でサブFiberを緊急停止させたい場合などに利用されます。Fiberの堅牢なエラーハンドリングを構築する上で重要な役割を果たします。

構文(syntax)

1f = Fiber.new { Fiber.yield }
2f.resume
3f.raise(StandardError, "これはFiber内で発生したエラーです")

引数(parameters)

*rest

  • rest: 例外オブジェクトまたは例外を生成するための引数。最初の要素が例外オブジェクトでない場合、 subsequent parameters are used to construct an exception.

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ