NameError
NameError
주어진 이름이 유효하지 않거나 정의되어 있지 않을 때 발생하는 예외예요.
출처: Ruby 3.3 API
본문
NameError는 코드에서 어떤 이름(변수나 상수, 메서드 등)을 참조했는데 그 이름이 정의되어 있지 않거나 유효하지 않을 때 발생해요.
정의되지 않은 지역 변수나 메서드를 참조하면 이렇게 되죠.
puts foo
다음과 같은 예외가 발생해요:
NameError: undefined local variable or method `foo' for main:Object
상수 이름은 반드시 대문자로 시작해야 하는데, 그 규칙을 어기면 역시 NameError가 나요.
Integer.const_set :answer, 42
다음과 같은 예외가 발생해요:
NameError: wrong constant name answer
Public Class Methods
new(msg=nil, name=nil, receiver: nil) → name_error
NameError 객체를 새로 만들어요. name에는 잘못된 이름을, receiver:에는 그 이름을 참조하려던 대상 객체를 각각 담을 수 있어요.
예를 들어 메서드 이름을 잘못된 값으로 조회하면, 오류에 이름과 수신자(receiver)가 함께 실려요.
[1, 2, 3].method(:rject) # NameError with name "rject" and receiver: Array
[1, 2, 3].singleton_method(:rject) # NameError with name "rject" and receiver: [1, 2, 3]
더 알아보기
- 정의되지 않은 메서드를 호출할 때 발생하는
NoMethodError문서도 함께 보면 좋아요.