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”。
为什么会这样?
答案 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?。
祝福好运! ;)