IllegalCallerException — 부적절한 호출자가 메서드를 불렀을 때

IllegalCallerException — 부적절한 호출자가 메서드를 불렀을 때

IllegalCallerException은 메서드를 적절하지 않은 호출자(inappropriate caller) 가 호출했을 때 던져지는 예외예요. "누가 이 메서드를 부르는지"가 중요한 상황에서, 자격이 없는 코드가 호출하는 걸 막기 위해 사용돼요.

출처: Java API Reference

본문

이 예외는 자바 9에서 소개됐는데, StackWalker.getCallerClass() 같은 기능과 자주 연결돼요. 호출 스택에서 실제 호출자를 확인한 뒤, 특정 조건(예: 특정 모듈에서만 호출 가능)을 만족하지 못하면 이 예외를 던지는 식으로 호출자 검증을 구현할 수 있어요.

상속 구조는 다음과 같아요.

java.lang.Object
  java.lang.Throwable
    java.lang.Exception
      java.lang.RuntimeException
        java.lang.IllegalCallerException

RuntimeException의 하위 클래스이고, 자바 9부터 제공됐어요.

생성자

  • IllegalCallerException() — 상세 메시지 없이 생성해요.
  • IllegalCallerException(String s) — 지정된 상세 메시지로 생성해요 (s는 null 가능).
  • IllegalCallerException(String message, Throwable cause) — 상세 메시지와 원인을 함께 지정해요 (둘 다 null 가능).
  • IllegalCallerException(Throwable cause) — 원인만 지정하고, 메시지는 cause == null ? null : cause.toString() 형태로 생성해요.

더 알아보기 (Learn more)