NoMethodError
NoMethodError
NoMethodError는 리시버에 정의되지 않은 메서드를 호출했고, method_missing으로도 응답하지 못했을 때 발생하는 예외예요.
"hello".to_ary
# NoMethodError: undefined method `to_ary' for an instance of String
출처: Ruby 4.0 API
본문
Public Class Methods
new(msg=nil, name=nil, args=nil, private=false, receiver: nil) → no_method_error
주어진 이름의 메서드를 주어진 인자로 호출했다는 내용의 NoMethodError 예외를 만들어요. 결과 객체의 name 메서드로 이름을, args 메서드로 인자를 꺼낼 수 있어요. private 인자를 넘기면 해당 메서드를 private 문맥에서 호출하려 했다는 뜻이고, private_call? 메서드로 그 사실을 확인할 수 있어요. receiver 인자에는 메서드가 호출된 객체를 저장해요.
Public Instance Methods
args → obj
생성자에 세 번째 인자로 넘겼던 인자들을 돌려줘요.
private_call? → true or false
원인이 된 메서드가 private으로 호출됐다면 true를 돌려줘요.