0

메소드 호출자의 호출 함수를 사용하는 경우, 사용하는 응용 프로그램이 매우 방대해서이 예외 인 InvocationTargetException이 발생하고 그 원인이 발생하는 경우가 있습니다. ArrayIndexOutofBounds 예외. 발생하는 문제는 비교적 적은 8 %의 트랜잭션이이 결과 (이 시나리오를 복제 할 수 없음)이며, 어떤 원인으로이 문제가 발생하는지 파악할 수 없습니다.InvocationTargetException은 ArrayIndexOutofBound 예외로 인해 발생합니다.

여러분이이 문제와 관련하여 제안 해 주시겠습니까? 그것에 대해 어떻게 가겠습니까? 매우 드물게 발생으로

getindexedproperty 문제를 복제 할 수없는 것은 오전을있는 InvocationTargetException의 원인이 여기에 반사의 PropertyUtils 클래스를 사용하고이 원인이 될 수있는 것을

+1

여전히 [SSCCE] (http://sscce.org)를 제공하십시오. – Melquiades

+1

로그를보고 어떤 배열 객체가이를 일으키는 지 확인하십시오. 반복하기 전에 크기를 계산하고 기록하십시오. 이렇게하면 오류의 원인을 식별 할 수 있습니다. –

답변

0

당신은 아마 예외를 포착하고 기록하지 않는 코드 고통 받고있다 적절한 스택 추적. 코드에서 이러한 모든 인스턴스 대신이 작업을 수행하는

변경 :

try { 
    // dangerous stuff here 
} catch (SomeException e) { 
    // Personally, I like to send a stack trace to stderr. 
    // You may prefer to print this to your log, eg if you don't capture stderr, 
    // or won't/can't for whatever reason. 
    e.printStackTrace(System.err); 
} 

그리고 다시 코드에서 이러한 예외가에서 나왔을 곳으로 손실이 될하지 않습니다.

각 try-catch를 방문 할 때 그러한 실패에 정말로 견고해야하는지 스스로에게 물어보십시오. 때로는 가장 좋은 방법은 코드가 빨리 실패하도록하는 것이며 이 아니라이 예외를 잡아냅니다. 응용 프로그램이 잘못된 상태의 일부 코드/데이터로 인해 실패하면 신속하게 찾아서 근본 원인에 대한 로드맵 (스택 추적)을 얻습니다.

관련 문제