티스토리 뷰

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
Today
Yesterday
링크
«   2024/04   »
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
글 보관함