gpt4 book ai didi

java - WebApplicationException 与响应

转载 作者:IT老高 更新时间:2023-10-28 21:19:26 26 4
gpt4 key购买 nike

REST 服务中向客户端返回响应的所有可能性中,我看到了两种看起来等效的可能性:抛出 WebApplicationException(可能使用Response 实例)或返回 Response 实例。

既然结果相同,为什么要使用一种可能性而不是另一种?这是否与使用的 REST 框架有关,该框架可能被配置为在异常和常规响应之间做出不同的 react ?

最佳答案

Why to use one possibility over the other since the result is the same?

也许是因为作为 (Java) 程序员,您习惯于在应用程序的特定规则被破坏时抛出异常?将一些字符串转换为数字,你可能会得到一个 NumberFormatException,在数组中使用错误的索引,你会得到一个 ArrayIndexOutOfBoundsException,访问你不允许的东西并得到一个SecurityException 等。当无法创建“常规响应”时(无论是错误输入还是某些处理错误),您习惯于抛出异常。

当您无法返回常规响应时,您必须向客户端返回错误响应。您可以通过抛出异常或手动构建响应来做到这一点。对于您的客户端来说是一样的,但对于您的服务器端代码来说就不一样了。

抛出异常使您的代码更简洁、更易于推理并因此更易于理解。这个想法是子类 WebApplicationException并从中创建您自己的有意义的异常(例如 ProductNotFoundException extends WebApplicationException { ... }AccessDeniedException extends WebApplicationException { ... } 或通过 exception mapper 重用异常)。

throw new ProductNotFoundException()throw new AccessDeniedException() 然后让框架处理它而不是构建 Response 会更简洁。每次和以后都按照用于构建它的细节来弄清楚那部分代码中发生了什么。

关于java - WebApplicationException 与响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359396/

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