P_e*_*021 6 java error-handling exception gson
我通过调用 Gson.fromJson() 得到了 com.google.gson.JsonSyntaxException ,因此添加了 catch(Exception) 逻辑,但错误永远不会被捕获,而只是被抛出!
这是我所拥有的:
Request request = new Request.Builder()
.url(getOrderUrlWithId)
.get()
.build();
try {
Response response = this.okHttpClient.newCall(request).execute();
GetOrderResult orderResult = gson.fromJson(gson.toJson(response.body().string()), GetOrderResult.class);
response.close();
} catch (IOException e) {
log.error("Error retrieving order : " + e.getMessage(), e);
throw new RuntimeException(e);
} catch (Exception e) {
log.error("Error happening for client PO: " + clientPO, e);
return null;
}
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到“com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_OBJECT,但在第1行第1列路径$为STRING”
为什么错误没有被捕获?
这是堆栈跟踪:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226)
at com.google.gson.Gson.fromJson(Gson.java:927)
at com.google.gson.Gson.fromJson(Gson.java:892)
at com.google.gson.Gson.fromJson(Gson.java:841)
at com.google.gson.Gson.fromJson(Gson.java:813)
at com.hub.fulfill.circlegraphics.getOrdersByCgOrderId(CircleGraphicsApi.java:164)
Run Code Online (Sandbox Code Playgroud)