Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > LocalJumpErrorクラス
class LocalJumpError
クラスの継承リスト: LocalJumpError < StandardError < Exception < Object < Kernel < BasicObject
Abstract
ある Proc オブジェクトの作成元スコープがすでに終了しているとき、 その Proc オブジェクト内で return, break, retry のいずれかを実行すると発生します。
Proc の例を参照してください。
インスタンスメソッド
exit_value -> object
-
例外 LocalJumpError を発生する原因となった break や return に渡した値を返します。
例:
def foo proc { return 10 } end begin foo.call rescue LocalJumpError => err p err # => #<LocalJumpError: return from block-closure> p err.reason # => :return p err.exit_value # => 10 end begin Block.new { break 5 }.call rescue LocalJumpError => err p err # => #<LocalJumpError: break from block-closure> p err.reason # => :break p err.exit_value # => 5 end
reason -> Symbol
-
例外を発生させた原因をシンボルで返します。
返す値は以下のいずれかです。
- :break
- :redo
- :retry
- :next
- :return
例:
def foo proc { return 10 } end begin foo.call rescue LocalJumpError => err p err # => #<LocalJumpError: return from block-closure> p err.reason # => :return p err.exit_value # => 10 end begin Block.new { break 5 }.call rescue LocalJumpError => err p err # => #<LocalJumpError: break from block-closure> p err.reason # => :break p err.exit_value # => 5 end