类 LocalJumpError

当 Ruby 无法按要求执行 yield 时抛出。

一个典型的场景是在没有给定块的情况下尝试 yield

def call_block
  yield 42
end
call_block

抛出异常

LocalJumpError: no block given (yield)

一个更微妙的例子

def get_me_a_return
  Proc.new { return 42 }
end
get_me_a_return.call

抛出异常

LocalJumpError: unexpected return

公共实例方法

exit_value → obj 点击切换源代码

返回与此 LocalJumpError 关联的退出值。

static VALUE
localjump_xvalue(VALUE exc)
{
    return rb_iv_get(exc, "@exit_value");
}
reason → symbol 点击切换源代码

此块被终止的原因::break、:redo、:retry、:next、:return 或 :noreason。

static VALUE
localjump_reason(VALUE exc)
{
    return rb_iv_get(exc, "@reason");
}