【Ruby3.x】throw()関数の使い方
throw関数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
throw関数は、Rubyにおいてプログラムの実行フローを特定のcatchブロックまで一気に移動させる、いわゆる大域脱出を実行する関数です。この機能は、例外処理(raiseとrescue)とは異なり、異常事態からの回復を目的とするものではなく、通常の制御フローの一部として利用されます。
throwは通常、対応するcatchブロックと組み合わせて使用されます。throw関数を呼び出す際には、識別子として機能する「タグ」と、必要に応じてcatchブロックに渡したい「値」を指定します。throwが実行されると、そのタグに一致する最も内側のcatchブロックまで制御が移り、その間にある処理はすべてスキップされます。catchブロックは、throwから渡された値を受け取ることができます。
この仕組みは、深くネストしたループや多重に呼び出されたメソッドから、一度に特定の外側のポイントへ処理を戻したい場合に特に有効です。例えば、複数の条件が満たされた場合にのみループを完全に抜け出したい場合などに、コードの可読性を保ちつつ簡潔に実装することができます。
構文(syntax)
1throw :tag_symbol, value_to_pass
引数(parameters)
tag, value = nil
- tag: 例外を発生させるためのタグ。
catchメソッドで捕捉するために使用されます。 - value = nil:
throw時に渡される値。catchメソッドで捕捉された場合に返されます。デフォルトではnilです。
戻り値(return)
戻り値なし
戻り値はありません