我遇到的问题是不理解我从try-catch语句中获取的错误消息,该语句有两次捕获。
我相信一切都是正确的,但是,我收到错误exception X is never thrown in body of corresponding try statement.
我认为代码是正确的,但两个catch子句都被拒绝了!
@PUT
@Path("{id}")
@Consumes("application/json")
public Response updatePerson(@PathParam("id") int id, String is) {
try {
Person person = readPerson(is);
person.setId(id);
Person locPerson = persons.get(id);
if(locPerson == null){
throw new WebApplicationException(Response.Status.NOT_FOUND);
}
persons.put(person.getId(), person);
return Response.status(Response.Status.OK).build();
} catch (JSONException e) {
return Response.status(Response.Status.BAD_REQUEST).build();
} catch (ParseException e) {
return Response.status(Response.Status.BAD_REQUEST).build();
}
}
答案 0 :(得分:1)
如果你的try块中调用的方法都没有抛出JSONException或ParseException,你就不应该捕获这些异常。这就是exception X is never thrown in body of corresponding try statement
的含义。
答案 1 :(得分:0)
这意味着您尝试捕获的异常永远不会被抛入try块中,因此将其置于catch语句中是多余的 - >警告为错误