gpt4 book ai didi

java - 在失败和错误情况下使用什么 : WebApplicationException vs Response?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:13 27 4
gpt4 key购买 nike

我正在处理 Rest 服务,如果出现故障/错误,我会感到困惑,我应该使用 Response 还是 WebApplicationException

下面是我使用 Response 返回 400 Bad Request 错误消息以及 JSON 响应错误的示例。

@GET
@Path("/data")
@Produces(MediaType.APPLICATION_JSON)
public Response getData(@Context UriInfo uriInfo) {
String client = getClientId();
if (client == null || client.isEmpty()) {
return Response.status(HttpServletResponse.SC_BAD_REQUEST)
.entity("{\"error\": \"client id is null or empty\"}").build();
}

// some code and return succesfull response

return Response
.status(HttpServletResponse.SC_OK)
.entity(resp.getResponse()).build();
}

在这里做什么是正确的?如果我需要使用 WebApplicationException 那么我该如何使用它来返回 400 Bad Request 错误消息以及 JSON 响应

最佳答案

在这种特殊情况下,返回Response 还是抛出映射异常,我说这只是一个偏好问题。但在某些情况下,返回 Response 是不可能的,例如,如果您绑定(bind)到接口(interface)协定,返回类型不是 Response,或者您不在资源方法的上下文,比如在过滤器或拦截器中。

如果您需要抛出异常并且不可能返回Response(或者您宁愿抛出异常),如果您查看WebApplicationException 的构造函数,您会注意到它有一个构造函数,但 Response 除外。如果抛出异常,这确实是添加正文的唯一方法(除非您使用 mapper )。

关于java - 在失败和错误情况下使用什么 : WebApplicationException vs Response?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30948966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com