InvocationTargetException — 호출 대상 예외 래퍼

InvocationTargetException — 호출 대상 예외 래퍼

InvocationTargetException은 호출된 메서드나 생성자가 던진 예외를 감싸는(wrap) 체크 예외(checked exception)예요. 리플렉션으로 메서드를 호출했는데 대상 메서드가 검사 예외를 던졌을 때, 그 원래 예외를 이 래퍼의 getCause()getTargetException()으로 꺼낼 수 있어요.

출처: Java API Reference

본문

protected InvocationTargetException() — 대상 예외를 지정하지 않고 예외를 만들어요. 이후 initCause로 원인을 설정할 수 있어요.

public InvocationTargetException(Throwable target) — 감쌀 대상 예외를 지정해 예외를 만들어요.

public InvocationTargetException(Throwable target, String s) — 대상 예외와 상세 메시지를 지정해 예외를 만들어요.

public Throwable getTargetException() — 이 예외가 감싼 대상 예외를 반환해요. getCause()와 동일한 값을 반환해요.

public Throwable getCause() — 이 예외가 감싼 대상 예외를 반환해요. null이면 원인이 없는 것으로 간주돼요.

리플렉션으로 Method.invoke()를 호출할 때 대상 메서드가 어떤 예외를 던지면, 그 예외는 이 InvocationTargetException으로 감싸져 던져져요. 따라서 실제 예외를 얻으려면 getCause()를 호출해 풀어내야 해요.

더 알아보기 (Learn more)