Java API文档解释了原因(http://java.sun.com/javase/6/docs/api/java/lang/Class.html#newInstance()):
请注意,此方法传播由nullary构造函数引发的所有异常,包括已检查的异常。这种方法的使用有效地绕过了编译时异常检查,否则该检查将由编译器执行。该Constructor.newInstance
方法通过将构造函数抛出的所有异常包装在(选中)中来避免此问题InvocationTargetException
。
换句话说,它可以使检查异常系统失效。