Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > LocalJumpErrorクラス
クラスの継承リスト: LocalJumpError < StandardError < Exception < Object < Kernel < BasicObject
ある 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