블로그 이름

[ERROR] InvocationTargetException 예외 본문

개발/오류

[ERROR] InvocationTargetException 예외

Hide 2025. 2. 18. 23:52

예외 로그는 아래와 같다.

 

java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566)

 

InvocationTargetException  예외란

method invoke 시 호출한 메소드 내에서 Exception 발생 시 해당 Exception 을 wrapping 해주는 Exception 클래스이다. 

실제로는 invoek된 메서드에서 발생하였지만 에러로그에는 invoke라고 찍혀서 원인 찾기가 힘들다

 

때문에 e.getTargetException().printStackTrace() 로 예외 처리가 필요하다.

 

e.printStackTrace는 권장되지 않는 방법으로 (실제로 에러 로그에는 로거를 사용하여 실제 발생 위치를 알 수 없게 함) 개발 서버에서 디버깅 용으로만 사용.

 

찾아보니 원인은 invoke("getPK"); 를 호출 중 발생하였고,

getPK() 메서드는 반환값이 int이지만 안에서 Integer변수를 반환하고 있었고, 해당 변수가 null인 상황이었다.

해당 변수 null 체크 추가하여 해결하였다.