采用反射去调用函数
当采用反射方法触发函数时(invoke),无论被调用的method发生什么Exception,都会被包装成InvocationTargetException被抛出
1 | try { |
所以说如果想知道底层到底是什么错误,需要从InvocationTargetException中取出target得到真正的Exception,类似动态代理中找Target
拆包InvocationTargetException
因为有时候可能是多层反射调用,所以采用while循环
1 | public static Exception getInvocationTarget(Exception exception) { |