खैर, मैंने इसे समझने और पढ़ने की कोशिश की है कि यह क्या कारण हो सकता है लेकिन मैं इसे प्राप्त नहीं कर सकता:
मेरे पास मेरे कोड में यह कहीं है:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
बात यह है कि, जब यह कुछ विधि को लागू करने की कोशिश करता है तो यह InvocationTargetException
कुछ अन्य अपेक्षित अपवाद (विशेष रूप से ArrayIndexOutOfBoundsException
) के बजाय फेंकता है
। जैसा कि मुझे वास्तव में पता है कि किस विधि को लागू किया जाता है, मैं सीधे इस विधि कोड में गया और लाइन के लिए एक ट्राइ-कैच ब्लॉक जोड़ा जो कि फेंकने के लिए लगता है ArrayIndexOutOfBoundsException
और यह वास्तव ArrayIndexOutOfBoundsException
में अपेक्षित रूप से फेंक दिया । फिर भी जब यह ऊपर जा रहा है तो
ई InvocationTargetException
के ऊपर और कोड में किसी तरह बदल जाता catch(Exception e)
है InvocationTargetException
और ArrayIndexOutOfBoundsException
अपेक्षा के अनुरूप नहीं है।
इस तरह के व्यवहार का क्या कारण हो सकता है या मैं इस तरह की जांच कैसे कर सकता हूं?