글쎄, 나는 그것을 이해하려고 노력했지만 그것을 읽을 수 있었지만 나는 그것을 얻을 수 없다 :
나는이 코드 어딘가에 있습니다.
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
'자바' 카테고리의 다른 글
java.net.SocketException의 원인이되는 항목 : 연결 재설정? (0) | 2021.04.10 |
---|---|
java에서 임의의 숫자 가져 오기 (0) | 2021.04.10 |
Java의 문자열 값에서 enum 값을 가져 오는 방법은 무엇입니까? (0) | 2021.04.10 |
'android.os.networkonmainthreadException'을 수정하는 방법은 무엇입니까? (0) | 2021.04.10 |
배열에서 요소 제거 (Java) (0) | 2021.04.09 |
댓글