From 6d4e3e5a287b24030ca696f99608024055e55a7e Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 22 Jul 2024 14:57:49 +0800 Subject: [PATCH] 2 --- pom.xml | 2 +- .../com/iflytop/uf/connection/UfZcancmderWebsocket.java | 2 +- src/main/java/com/iflytop/uf/util/UfClassHelper.java | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index d661366..5e2eafb 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.iflytop uf - 0.0.64 + 0.0.66 uf uf diff --git a/src/main/java/com/iflytop/uf/connection/UfZcancmderWebsocket.java b/src/main/java/com/iflytop/uf/connection/UfZcancmderWebsocket.java index 5478fbc..020296c 100644 --- a/src/main/java/com/iflytop/uf/connection/UfZcancmderWebsocket.java +++ b/src/main/java/com/iflytop/uf/connection/UfZcancmderWebsocket.java @@ -87,7 +87,7 @@ public class UfZcancmderWebsocket extends UfConnectionBase { returnValue = (String) UfClassHelper.invokeMethod(this, methodName, List.of(command)); } catch (NoSuchMethodException e) { returnValue = this.executeDeviceCommand(command); - } catch (Exception e) { + } catch (Throwable e) { throw new RuntimeException(e); } return returnValue; diff --git a/src/main/java/com/iflytop/uf/util/UfClassHelper.java b/src/main/java/com/iflytop/uf/util/UfClassHelper.java index 6654901..b12b109 100644 --- a/src/main/java/com/iflytop/uf/util/UfClassHelper.java +++ b/src/main/java/com/iflytop/uf/util/UfClassHelper.java @@ -40,18 +40,22 @@ public class UfClassHelper { } // invoke method - public static Object invokeMethod(Object obj, String methodName, List args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + public static Object invokeMethod(Object obj, String methodName, List args) throws Throwable { Class[] parameterTypes = new Class[args.size()]; for (int i = 0; i < args.size(); i++) { parameterTypes[i] = args.get(i).getClass(); } Method method = obj.getClass().getMethod(methodName, parameterTypes); - if ( method.getReturnType().equals(Void.TYPE) ) { - method.invoke(obj, args.toArray()); - return null; - } else { - return method.invoke(obj, args.toArray()); + try { + if ( method.getReturnType().equals(Void.TYPE) ) { + method.invoke(obj, args.toArray()); + return null; + } else { + return method.invoke(obj, args.toArray()); + } + } catch ( Exception e ) { + throw e.getCause(); } }