본문 바로가기
자바

java.lang.Reflect.InvocationTargetException의 원인이되는 것은 무엇입니까?

by º기록 2021. 4. 10.
반응형

글쎄, 나는 그것을 이해하려고 노력했지만 그것을 읽을 수 있었지만 나는 그것을 얻을 수 없다 :

나는이 코드 어딘가에 있습니다.

 try{
 ..
 m.invoke(testObject);
 ..
 } catch(AssertionError e){
 ...
 } catch(Exception e){
 ..
 }

그것이 던지는 방법을 호출하려고 시도하면 InvocationTargetException instead of some other expected exception (specifically ArrayIndexOutOfBoundsException). As I actually know what method is invoked I went straight to this method code and added a try-catch block for the line that suppose to throw ArrayIndexOutOfBoundsException and it really threw ArrayIndexOutOfBoundsException as expected. Yet when going up it somehow changes to InvocationTargetException and in the code above catch(Exception e) e is InvocationTargetException and not ArrayIndexOutOfBoundsException 예상대로.

그러한 행동을 일으킬 수있는 것은 무엇입니까 아니면 어떻게 그런 일을 확인할 수 있습니까?

 

해결 방법

 

반영한 방법을 호출하여 추가 수준의 추상화를 추가했습니다.반사 계층은 invocationtargetException 에 예외를 래핑합니다. 실제로 반사 호출의 실패로 인한 의 차이점을 알려줍니다 (인수 목록은예를 들어, 예를 들어) 및 호출 된 메소드 내에서 오류가 발생합니다.

invocationTargetException 에서 원인을 풀어 주면 원래 하나에 도달 할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/6020719

 

 

반응형

댓글