TypeError
TypeError (타입 불일치 예외)
기대한 타입과 다른 타입의 객체를 만났을 때 Ruby가 던지는 예외에요. 메서드에 넘긴 인자의 타입이 아니거나, 연산할 때 타입이 맞지 않으면 이 예외가 발생해요.
출처: Ruby 3.3 API
본문
아래 코드처럼 정수 배열에 first 메서드를 호출하면서 인자로 문자열을 넘겨주면, Ruby는 그 문자열을 정수로 변환할 방법이 없기 때문에 TypeError를 던져요.
[1, 2, 3].first("two")
이 코드는 다음과 같은 예외를 던져요.
TypeError: no implicit conversion of String into Integer
String을 Integer로 묵시적 변환(implicit conversion)할 수 없다는 뜻이에요. 즉 문자열 인자를 정수로 자동 변환해 줄 수 없어서 타입이 맞지 않는다고 알려주는 거예요.