Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Rest API作为内部服务器错误处理时出现异常(500)_Java_Rest_Spring Boot_Exception - Fatal编程技术网

Java 将Rest API作为内部服务器错误处理时出现异常(500)

Java 将Rest API作为内部服务器错误处理时出现异常(500),java,rest,spring-boot,exception,Java,Rest,Spring Boot,Exception,我有一个连接到第三方API(B)的内部API(A) API B可以给出以下错误 ERR001 ERR002 API A为以下相同的错误代码配置了错误消息 ERR001-发生错误1 ERR002-发生错误2 现在,如果出现任何错误/异常,API A将在下面返回 Response headers : HTTP/1.1 500 Internal Server Error Response Body: {"time":"2000-04-..","errors":[{"code":"ERR001","me

我有一个连接到第三方API(B)的内部API(A)

API B可以给出以下错误

  • ERR001
  • ERR002
  • API A为以下相同的错误代码配置了错误消息

  • ERR001-发生错误1
  • ERR002-发生错误2
  • 现在,如果出现任何错误/异常,API A将在下面返回

    Response headers : HTTP/1.1 500 Internal Server Error
    Response Body: {"time":"2000-04-..","errors":[{"code":"ERR001","message":"Error1 occurred"}],"details":"uri=/*","status":500}
    
    设置错误状态HTTP/1.1500内部服务器错误是否更适合这种情况

    将已知错误代码包装为500状态是个好主意吗

    如果不是,我应该设置哪些状态代码,我可以保持相同的错误结构吗

    设置错误状态HTTP/1.1500内部服务器错误是否为 更适合这种情况

    我会说,是的

    因为在许多情况下(或者我认为),您不应该公开在与第三方库通信时发生的错误

    将已知错误代码包装为500状态是个好主意吗

    视情况而定

    如果由于某些业务逻辑而在应用程序中发生错误。在这种情况下,您应该抛出一些明确的错误代码和错误消息


    但是,如果错误是因为某些第三方库失败而发生的,在这种情况下,您不应该抛出确切的错误消息。因为它可能是秘密信息

    即使你什么都不做,你也会得到500,如果服务器出现故障并且没有处理,那么服务器会自动抛出500。最好返回其他状态代码来区分您已处理的异常,原因是如果您看到500,您将知道这是您尚未处理的异常

    所以,500内部服务器错误状态是指此类错误?如果是,它应该只在服务器端发生异常时发送,但您不确定发生了什么错误,您不应该将整个桩跟踪发送到客户端。刚刚发送了500和“服务器端出了问题”,然后在您的端进行调试