티스토리 뷰

InvocationTargetException

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


InvocationTargetException는 method invoke시 호출한 메소드 내에서 Exception이 발생했을때 해당 wrapping 해주는 Exception 클래스입니다. 따라서 발생한 예외는 invoke 구문에서 발생한것처럼 보이기 때문에 InvocationTargetException 자체의 stack trace 만으로 에러를 해결하기가 어렵습니다. 따라서 e.getTargetException을 하여 호출한 메소드 내에서 발생한 Exception을 사용하여 예외를 처리해야 합니다.




예외처리 팁

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







댓글
댓글쓰기 폼
Total
354,596
Today
15
Yesterday
658
링크
«   2019/11   »
          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
글 보관함