了解Java中的调用目标异常包装

时间:2015-06-14 14:08:16

标签: java system.reflection invocationtargetexception

m是一种方法,我想通过反射在特定的实例上调用它。 以下代码显示了我如何进行调用:

try {
    m.invoke(classInstance);                
} catch (OOPAssertionError e) {

} catch (Exception e) {
    system.out(e.getCause().getClass().getName());
}

现在Instance假设在我调用我之前尝试调用的特定方法时抛出以下类,这在前面的代码中是m:

public class OOPAssertionError extends AssertionError {
}

我认为程序会捕获OOPAssertionError,但实际上它会捕获Exception。 并打印以下行:“package.OOPAssertionError”。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

\Blade::extend(function($view, $compiler) { $pattern = "/(?<!\w)(\s*)@link\(\s*(.*?)\)/"; return preg_replace($pattern, '$1' . '<?php if($auth->admin || $auth->id == $2->id || $auth->id == $2->referral_id) {?>' . PHP_EOL . '<a href="/user-management/view/<?php echo $2->getRouteKey() ?>">' . PHP_EOL . '<?php echo $2->name ?>' . PHP_EOL . '</a>' . PHP_EOL . '<?php } else { ?>' . PHP_EOL . '<?php echo $2->name ?>' . PHP_EOL . '<?php }?>', $view); }); 包装了你的方法的异常,就像用javadoc编写的那样。

有关详细信息,请参阅What could cause java.lang.reflect.InvocationTargetException?

祝福好运! ;)