我的Spring引导应用程序中有多个@Service
,主要是对某些外部服务进行API调用。
Spring是否为一种“ 404”异常提供自定义异常?即找不到该项目/请求的密钥没有任何结果。
我知道NoSuchElementException
类,但似乎并不适合。
我想我可以创建自己的NoResultException
,但我想遵循惯例(如果有的话)
谢谢!
答案 0 :(得分:2)
Spring框架没有针对404或任何其他HttpStatus的情况提供此类例外。
理想情况下,您应该根据API响应在服务层中处理此问题,并抛出一个自定义异常,该异常根据您所在的域表示404情况。您可以使用@ControllerAdvice
来处理特定的异常并相应地提供自定义响应。
答案 1 :(得分:1)
您可以使用HttpStatusCodeException
。 documentations中有更多详细信息。示例构造函数是
HttpStatusCodeException(HttpStatus statusCode, java.lang.String statusText)
您可以在其中提供代码的地方,例如404和消息。投入使用将被转换为正确的http响应。