KeyError
KeyError
지정한 키(key)를 찾을 수 없을 때 발생하는 예외예요. IndexError의 하위 클래스예요.
출처: Ruby 4.0 API
본문
해시에서 키로 값을 꺼낼 때, []처럼 조용히 nil을 돌려주는 방식도 있지만 값을 강제로 가져오는 fetch는 키가 없으면 KeyError를 던져요.
h = {"foo" => :bar}
h.fetch("foo") #=> :bar
h.fetch("baz") #=> KeyError: key not found: "baz"
h에는 "foo"만 있으니 "baz"를 찾으면 KeyError: key not found: "baz"가 나는 걸 볼 수 있어요.
KeyError를 직접 만들 일은 흔치 않지만, 필요하면 생성자에서 receiver와 key를 받아서 어떤 객체의 어떤 키가 문제였는지를 예외 객체에 담아둘 수 있어요.
클래스 메서드
new(message=nil, receiver: nil, key: nil) → key_error
주어진 메시지, receiver, key로 새 KeyError 예외를 만들어요. 이때 receiver와 key는 선택 인자예요.
인스턴스 메서드
key → object
이 KeyError 예외를 일으킨 키를 돌려줘요. 저장된 키가 없으면 ArgumentError가 나요.
receiver → object
이 KeyError 예외와 연결된 receiver(예외가 발생한 대상 객체)를 돌려줘요. 저장된 receiver가 없으면 ArgumentError가 나요.