ある Proc オブジェクトの作成元スコープがすでに終了しているとき、その Proc オブジェクト内で return, break, retry のいずれかを実行すると発生します。
Proc の例を参照してください。
exit_value -> object
[permalink][rdoc]例外 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
[permalink][rdoc]例外を発生させた原因をシンボルで返します。
返す値は以下のいずれかです。
例:
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