网站百度流量怎么做,wordpress 搜索乱码,网页制作与网站建设技术大全 下载,中国城市建设网网站背景#xff1a;线上某段和反射相关的代码报错了#xff0c;但是异常信息打印只看到了 InvocationTargetException#xff0c;没打印具体的异常。就像这样#xff1a;java.lang.reflect.InvocationTargetException: null 查阅资料后发现要用e.getCause()才能打印具体异常线上某段和反射相关的代码报错了但是异常信息打印只看到了 InvocationTargetException没打印具体的异常。就像这样java.lang.reflect.InvocationTargetException: null 查阅资料后发现要用e.getCause()才能打印具体异常JDK8会有这个问题我用JDK17没能复现 目录 代码复现日志截图InvocationTargetException介绍解决方案 代码复现
package org.kkk.demo4;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Method;Slf4j
public class ReflectionExample {public static void main(String[] args) {try {MyClass myClass new MyClass();// 创建一个类的实例Class? clazz myClass.getClass();// 获取 MyClass 类的 Class 对象Method method clazz.getMethod(methodThatThrowsNullPointerException);// 获取 MyClass 类中的某个方法method.invoke(myClass);// 通过反射调用该方法} catch (Exception e) {log.error(执行异常,e);//TODO JDK8 需要通过e.getCause()才能看到具体日志}}
}Slf4j
class MyClass {public void methodThatThrowsNullPointerException() {// 故意抛出 NullPointerExceptionint i 10/0;}
}日志截图 InvocationTargetException介绍
java.lang.reflect.InvocationTargetException: null 是 Java 反射机制中的一个异常。这个异常通常出现在通过反射调用方法时当被调用的方法内部抛出了一个异常而这个异常没有被捕获时Java 会将其封装在 InvocationTargetException 中抛出。
解决方案
1.检查被调用的方法: 确认通过反射调用的方法内部是否存在未捕获的异常。 2.查看异常的根本原因: 可以通过 InvocationTargetException 的 getCause() 方法来获取被调用方法内部抛出的实际异常从而了解问题的根源。