Skip to content

Commit 4399828

Browse files
committed
处理JBException
1 parent 0cd8876 commit 4399828

2 files changed

Lines changed: 19 additions & 14 deletions

File tree

src/main/java/com/javabaas/javasdk/JB.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -134,19 +134,16 @@ public void addHookListener(String name, HookEvent event, HookListener listener)
134134
* @param body 请求主体
135135
*/
136136
public static JBResponse onRequest(String requestType, String body) throws Throwable {
137-
try {
138-
//整理请求体
139-
if (requestType.equals(JBRequest.REQUEST_CLOUD)) {
140-
//云方法
141-
CloudRequest cloudRequest = JBUtils.readValue(body, CloudRequest.class);
142-
return onCloudRequest(cloudRequest);
143-
} else if (requestType.equals(JBRequest.REQUEST_HOOK)) {
144-
//钩子
145-
HookRequest hookRequest = JBUtils.readValue(body, HookRequest.class);
146-
return onHookRequest(hookRequest);
147-
} //请求类型不匹配
148-
} catch (JBException ignored) {
149-
}
137+
//整理请求体
138+
if (requestType.equals(JBRequest.REQUEST_CLOUD)) {
139+
//云方法
140+
CloudRequest cloudRequest = JBUtils.readValue(body, CloudRequest.class);
141+
return onCloudRequest(cloudRequest);
142+
} else if (requestType.equals(JBRequest.REQUEST_HOOK)) {
143+
//钩子
144+
HookRequest hookRequest = JBUtils.readValue(body, HookRequest.class);
145+
return onHookRequest(hookRequest);
146+
} //请求类型不匹配
150147
return null;
151148
}
152149

src/main/java/com/javabaas/javasdk/annotation/scanner/OnCloudScanner.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.javabaas.javasdk.annotation.scanner;
22

33
import com.javabaas.javasdk.JB;
4+
import com.javabaas.javasdk.JBException;
45
import com.javabaas.javasdk.annotation.OnCloud;
56
import com.javabaas.javasdk.cloud.CloudListener;
67
import com.javabaas.javasdk.cloud.CloudRequest;
@@ -39,7 +40,14 @@ public CloudResponse onCloud(CloudRequest request) throws Throwable {
3940
try {
4041
return (CloudResponse) method.invoke(object, args);
4142
} catch (IllegalAccessException | InvocationTargetException e) {
42-
throw e.getCause();
43+
if (e.getCause() instanceof JBException) {
44+
CloudResponse response = new CloudResponse();
45+
response.setCode(((JBException) e.getCause()).getCode());
46+
response.setMessage(e.getCause().getMessage());
47+
return response;
48+
} else {
49+
throw e.getCause();
50+
}
4351
}
4452
}
4553
});

0 commit comments

Comments
 (0)