Raised when Ruby can't yield as requested.
A typical scenario is attempting to yield when no block is given:
def call_block yield 42 end call_block
raises the exception:
LocalJumpError: no block given (yield)
A more subtle example:
def get_me_a_return Proc.new { return 42 } end get_me_a_return.call
raises the exception:
LocalJumpError: unexpected return
static VALUE localjump_xvalue(VALUE exc) { return rb_iv_get(exc, "@exit_value"); }
Returns the exit value associated with this LocalJumpError
.
static VALUE localjump_reason(VALUE exc) { return rb_iv_get(exc, "@reason"); }
The reason this block was terminated: :break, :redo, :retry, :next, :return, or :noreason.
Ruby Core © 1993–2020 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.