首页 新闻 搜索 专区 学院

如何处理ReflectiveOperationException?

0
悬赏园豆:5 [已解决问题] 解决于 2021-10-26 21:43

ReflectiveOperationException及其子类ClassNotFoundException、NoSuchMethodException等异常都是非运行时异常。按理说,非运行时异常应该在代码中捕获并予以处理,可是我想不明白捕获这类异常应该如何处理。通常我们找到某个类或方法是为了生成该类的对象或执行该方法,可是找不到的话,程序就不能运行下去了,应该中止了。不知道各位老哥能给个处理ReflectiveOperationException的例子吗?
我为了方便,自己写了几个方法:
Method getMethod(String fullMethodSignature) throws ClassNotFoundException, NoSuchMethodException;
Object invokeMethod(String fullMethodSignature, Object owner, Object... args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException;
至于方法体我就不写了,有经验的程序员应该知道怎么写。
下面是这两个方法执行的例子:
final Method method = getMethod("java.lang.Integer.valueOf(String)");
final Integer value = (Integer) invokeMethod("java.lang.Integer.valueOf(String)", null, "123456789");
方法抛出如此多的异常,我不知道如何捕获它们并在代码中处理。我认为这些异常在运行时是无法处理的,我的解决办法把这些异常放在运行时异常里抛出,不知道各位老哥有没有更好的解决办法?

Halloworlds的主页 Halloworlds | 菜鸟二级 | 园豆:209
提问于:2021-09-18 10:42
< >
分享
最佳答案
0

不处理,往外抛出,完全没有问题。
众多异常信息,可以考虑spring的全局异常处理器进行处理,拦截异常,对异常进行分类处理。(直接转换错误信息响应前端或者记录日志信息)。

收获园豆:5
绝不是木头 | 小虾三级 |园豆:506 | 2021-10-25 10:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册