TypeError

TypeError (타입 불일치 예외)

기대한 타입과 다른 타입의 객체를 만났을 때 Ruby가 던지는 예외에요. 메서드에 넘긴 인자의 타입이 아니거나, 연산할 때 타입이 맞지 않으면 이 예외가 발생해요.

출처: Ruby 3.3 API

본문

아래 코드처럼 정수 배열에 first 메서드를 호출하면서 인자로 문자열을 넘겨주면, Ruby는 그 문자열을 정수로 변환할 방법이 없기 때문에 TypeError를 던져요.

[1, 2, 3].first("two")

이 코드는 다음과 같은 예외를 던져요.

TypeError: no implicit conversion of String into Integer

StringInteger묵시적 변환(implicit conversion)할 수 없다는 뜻이에요. 즉 문자열 인자를 정수로 자동 변환해 줄 수 없어서 타입이 맞지 않는다고 알려주는 거예요.