LocalJumpError
LocalJumpError
Ruby가 요청대로 yield를 할 수 없을 때 발생하는 예외예요.
출처: Ruby 3.3 API
본문
LocalJumpError는 Ruby가 요청대로 yield를 수행할 수 없을 때 발생해요. 대표적인 상황은 블록(block)이 주어지지 않았는데 yield를 시도하는 경우예요.
def call_block
yield 42
end
call_block
이 코드는 다음 예외를 발생시켜요.
LocalJumpError: no block given (yield)
좀 더 미묘한 예시로는, 메서드 정의 안에서 만들어진 Proc를 그 메서드가 반환된 뒤에 호출해서 return을 실행하려는 경우예요.
def get_me_a_return
Proc.new { return 42 }
end
get_me_a_return.call
이 코드는 다음 예외를 발생시켜요.
LocalJumpError: unexpected return
Public Instance Methods
exit_value → object
이 LocalJumpError와 연관된 종료 값(exit value)을 돌려줘요.
reason → symbol
이 블록이 종료된 이유를 돌려줘요. :break, :redo, :retry, :next, :return, 또는 :noreason 중 하나예요.