IllegalCallerException — 부적절한 호출자가 메서드를 불렀을 때
IllegalCallerException — 부적절한 호출자가 메서드를 불렀을 때
IllegalCallerException은 메서드를 적절하지 않은 호출자(inappropriate caller) 가 호출했을 때 던져지는 예외예요. "누가 이 메서드를 부르는지"가 중요한 상황에서, 자격이 없는 코드가 호출하는 걸 막기 위해 사용돼요.
본문
이 예외는 자바 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()형태로 생성해요.