LocalJumpError

若在超出作用域的Proc中使用return,break,retry时,就会引发该异常.

请参考Proc的例子.

超类:

方法

exit_value ((<ruby 1.8 特性>))

返回引发LocalJumpError异常的break或return的指定返回值.

def foo
  proc { return 10 }
end

begin
  foo.call
rescue LocalJumpError
  p $!
  p $!.reason
  p $!.exit_value
end

=> ruby 1.8.0 (2003-06-09) [i586-linux]
   #<LocalJumpError: return from block-closure>
   :return
   10

begin
  Block.new { break 5 }.call
rescue LocalJumpError
  p $!
  p $!.reason
  p $!.exit_value
end

=> ruby 1.8.0 (2003-06-09) [i586-linux]
   #<LocalJumpError: break from block-closure>
   :break
   5
reason ((<ruby 1.8 特性>))

以符号的形式返回引发异常的原因. 返回值是下列之一:

  • :break
  • :redo
  • :retry
  • :next
  • :return

请参考exit_value的例子.