PrivilegedActionException

PrivilegedActionException (특권 행동 예외)

AccessController.doPrivileged에 의해 특권 계산을 수행하다가 PrivilegedExceptionAction이 던진 예외를 감싸는 예외입니다.

출처: Java API Reference

본문

PrivilegedActionExceptionException을 상속하는 예외로, 특권 계산이 PrivilegedExceptionAction.run()에서 던진 예외(체크 예외)를 래핑합니다. 특권 스코프(privileged scope)로 진입하는 데 사용된 AccessControlContext를 함께 보관합니다.

이 예외에는 호출 스택이 항상 포함되지는 않습니다. 즉, 이 예외가 생성된 시점의 스택 정보 대신 원래 예외가 던져진 지점의 스택을 포함할 수 있습니다. 따라서 이 예외의 전체 스택 트레이스를 로그처럼 기록하는 것은 권장되지 않습니다.

PrivilegedActionException이 제공하는 주요 메서드는 다음과 같습니다.

  • public Exception getException() — 이 예외로 인해 발생한 예외를 반환합니다. 주의: 이 메서드는 Throwable.getCause()와 달리 래핑된 예외를 반환합니다.
  • public Throwable getCause() — 이 예외의 원인을 반환합니다.
  • public String toString() — 이 예외의 문자열 표현을 반환합니다. 원래 예외의 정보를 포함합니다.

사용 시에는 getException()으로 원래 예외를 꺼내 적절히 처리해야 합니다.

더 알아보기 (Learn more)

Java 공식 API