package-kind — 오류가 발생한 패키지의 종류 알아내기
package-kind — 오류가 발생한 패키지의 종류 알아내기
패키지(package)를 다루다 보면 '어떤 종류의 패키지였는지'가 원인을 파악하는 데 중요한 예외들이 있어요. X::로 시작하는 몇몇 예외 타입이 그 정보를 package-kind 메서드로 돌려줘요. 타입마다 반환하는 값의 범위는 조금씩 달라요.
본문
In X::Anon::Augment
method package-kind returns Str:D
코드가 augment하려던 패키지의 종류(module, class, grammar 등)를 돌려줘요.
In X::Augment::NoSuchType
method package-kind(--> Str:D)
augment하려던 패키지의 종류(class, grammar)를 돌려줘요.
In X::Attribute::Undeclared
속성이 사용된 패키지의 종류(예: class, grammar)를 돌려줘요.
In X::Attribute::Package
method package-kind(--> Str:D)
속성을 지원하지 않는 패키지의 종류(package, module)를 돌려줘요.
같은 이름의 메서드라도 예외 타입에 따라 설명하는 대상이 미묘하게 달라요. Augment 계열은 패키지를 확장하려다 실패한 상황이라 'augment 대상'을, Attribute 계열은 속성과 관련된 상황이라 '속성이 놓인 패키지'를 가리킨다는 점을 기억해 두면 돼요.