UndeclaredThrowableException — 선언되지 않은 예외 래퍼

UndeclaredThrowableException — 선언되지 않은 예외 래퍼

UndeclaredThrowableException은 프록시 인스턴스에 대한 메서드 호출에서, 해당 인스턴스의 호출 핸들러(invocation handler)의 invoke 메서드가 체크 예외(RuntimeException이나 Error로 할당 불가능한 Throwable)를 던졌는데, 그 예외가 프록시 인스턴스에서 호출된 메서드의 throws 절에 선언된 예외 타입들 중 어느 것에도 할당되지 않을 때 던져지는 예외예요. UndeclaredThrowableException 인스턴스는 호출 핸들러가 던진 선언되지 않은 체크 예외를 담고 있으며, getUndeclaredThrowable() 메서드로 꺼낼 수 있어요. UndeclaredThrowableExceptionRuntimeException을 확장하므로, 체크 예외를 감싼 언체크 예외(unchecked exception)예요.

출처: Java API Reference

본문

public UndeclaredThrowableException(Throwable undeclaredThrowable) — 선언되지 않은 예외를 감싸는 예외를 만들어요.

public UndeclaredThrowableException(Throwable undeclaredThrowable, String s) — 선언되지 않은 예외와 상세 메시지를 감싸는 예외를 만들어요.

public Throwable getUndeclaredThrowable() — 이 예외가 감싼 선언되지 않은 예외를 반환해요.

동적 프록시를 사용할 때, 프록시가 구현하는 인터페이스의 메서드가 선언하지 않은 체크 예외를 호출 핸들러가 던지면 이를 직접 던질 수 없어서 이 언체크 래퍼로 감싸 던져요.

더 알아보기 (Learn more)