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");
}