InvocationTargetExceptionの概要
InvocationTargetException異常はjavaです.lang.reflectパッケージでは、この異常の発生は反射に関係する.
estDiv.invoke(testCalculator, calculator, 12, 0);行コードは異常を放出するが、直接testCalculator.testDiv(calculator, 12, 0);投げたのはjavaです.lang.ArithmeticException異常
結論:Methodオブジェクトのinvokeメソッドを用いるターゲットオブジェクトのメソッドを呼び出す場合、ターゲットオブジェクトのメソッド内部に異常が投げ出されると、ターゲットオブジェクトをラッピングするメソッド内部に異常が投げ出され、InvocationTargetException異常クラスのgetTargetException()メソッドを呼び出すことで元の異常を得ることができる.
この文書は次のとおりです.http://blog.csdn.net/simpleit/article/details/5415066
package org.simpleit.test;
public class Calculator {
public int div(int i, int j){
return i / j;
}
}
package org.simpleit.test;
public class TestCalculator {
public void testDiv(Calculator calculator, Integer a, Integer b){
System.out.println(calculator.div(a, b));
}
}
@SuppressWarnings("unchecked")
@Test
public void testInvocationTargetException() throws Exception{
TestCalculator testCalculator = new TestCalculator();
Calculator calculator = new Calculator();
Class clazz = TestCalculator.class;
Method testDiv = clazz.getDeclaredMethod("testDiv", Calculator.class,
Integer.class, Integer.class);
// InvocationTargetException
testDiv.invoke(testCalculator, calculator, 12, 0);
}
estDiv.invoke(testCalculator, calculator, 12, 0);行コードは異常を放出するが、直接testCalculator.testDiv(calculator, 12, 0);投げたのはjavaです.lang.ArithmeticException異常
結論:Methodオブジェクトのinvokeメソッドを用いるターゲットオブジェクトのメソッドを呼び出す場合、ターゲットオブジェクトのメソッド内部に異常が投げ出されると、ターゲットオブジェクトをラッピングするメソッド内部に異常が投げ出され、InvocationTargetException異常クラスのgetTargetException()メソッドを呼び出すことで元の異常を得ることができる.
この文書は次のとおりです.http://blog.csdn.net/simpleit/article/details/5415066