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.