我发布到端点并在其中传递Json。
@POST("/start")
@PermitAll
public String Connect(Map form)
{
String stack_callback;
String wfid;
String ch_id;
try {
elem1 = form.get("elem1").toString();
elem2 = form.get("elem2").toString();
elem3 = form.get("elem3").toString();
elem4 = form.get("elem4").toString();
} catch (NullPointerException e) {
return "error";
}
ThreadStart threadStart = new ThreadStart(elem1, elem2, elem3, elem4);
new Thread(threadStart).start();
return "Start the thread";
}
现在,如果我发送POST,例如一个没有价值的钥匙(如下),我得到了“request raised JsonParseException
”:
{
"elem1": "val1",
"elem2": "val2",
"elem3": ,
"elem4": "val4"
}
如何处理此异常?
答案 0 :(得分:0)
如果您使用的是Java 7或更高版本:
catch (NullPointerException | JsonParseException e) {
// log e, handle the exception
}
如果您使用的是Java 6或更早版本:
catch (NullPointerException e) {
// log e, handle null pointer
} catch (JsonParseException e) {
// log e, handle key with no value
}
您还可以使用Connect
方法throw
a JsonParseException
:
public String Connect(Map form) throws JsonParseException {
// ...
}
但Connect
似乎是来自Web框架的POST请求的入口点。无论是谁调用Connect
,都可能不适合处理解析JSON的问题,因此您可能希望在代码中捕获异常。