Spring @Service的“无结果异常”

时间:2019-03-10 13:14:19

标签: java spring spring-boot exception

我的Spring引导应用程序中有多个@Service,主要是对某些外部服务进行API调用。

Spring是否为一种“ 404”异常提供自定义异常?即找不到该项目/请求的密钥没有任何结果。

我知道NoSuchElementException类,但似乎并不适合。

我想我可以创建自己的NoResultException,但我想遵循惯例(如果有的话)

谢谢!

2 个答案:

答案 0 :(得分:2)

Spring框架没有针对404或任何其他HttpStatus的情况提供此类例外。

理想情况下,您应该根据API响应在服务层中处理此问题,并抛出一个自定义异常,该异常根据您所在的域表示404情况。您可以使用@ControllerAdvice来处理特定的异常并相应地提供自定义响应。

答案 1 :(得分:1)

您可以使用HttpStatusCodeExceptiondocumentations中有更多详细信息。示例构造函数是

HttpStatusCodeException(HttpStatus statusCode, java.lang.String statusText)

您可以在其中提供代码的地方,例如404和消息。投入使用将被转换为正确的http响应。