티스토리 뷰

InvocationTargetException

Java Reflection을 사용중 InvocationTargetException가 발생하는 경우가 있습니다. 이 예외를 처음 만났을 때는 정확하게 어느 위치에서 예외가 발생하였는지 알 수 없어 굉장이 당황할 수 있습니다.(사실 제가 그랬습니다...)


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


실제로는 invoke 된 메서드에서 발생한 Exception이지만, 마치 invoke 구문에서 발생한것처럼 보이기 때문에 InvocationTargetException 자체의 stack trace 만으로 에러를 해결하기가 어렵습니다.


따라서 e.getTargetException을 하여 호출한 메소드 내에서 발생한 Exception을 사용하여 예외를 처리해야 합니다.




예외처리 팁

Exception 처리시에는 위와 같이 e.printStackTrace는 권장되지 않는 방법입니다.. 예외 발생 위치가 정확하게 드러나기 때문에 보안에 위협이 될 수 있습니다. 따라서 표준 에러스트림을 수정하거나 Exception을 로그로 출력하는 방식등을 사용하는 것을 권장하고 있습니다.







댓글
댓글쓰기 폼
Total
460,964
Today
234
Yesterday
539
링크
«   2020/07   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
글 보관함