【问题标题】:How to handle feign client connection timeout如何处理假客户端连接超时
【发布时间】:2020-05-27 13:27:24
【问题描述】:

我有下面的代码来检查这个错误,但我没有收到超时错误,它会发生其他情况

Response response = null;
        try {
            response = client.getResponse(URI.create(uri), headers, reuest);
        } catch (Exception ex) {

            if(ex instanceof SocketTimeoutException){
                throw new ExternalClientException(Errors.TIMEOUT_ERROR);
            } else {
                throw new ExternalClientException(Errors.UNEXPECTED_ERROR);
            }
        }

【问题讨论】:

    标签: spring timeout feign


    【解决方案1】:

    您需要捕获feign.RetryableException 而不是SocketTimeoutException

    javadoc

    【讨论】:

      【解决方案2】:

      请发送所有课程代码。您需要提供类“客户”变量,以便人们可以提供帮助。

      还有一点,不要在“catch”子句中检查异常实例,您应该像这样使用多个捕获:

      Response response = null;
      try {
          response = client.getResponse(URI.create(uri), headers, reuest);
      } catch (SocketTimeoutException ex1) {
          throw new ExternalClientException(Errors.TIMEOUT_ERROR, ex1);
      } catch (Exception ex2) {
          throw new ExternalClientException(Errors.UNEXPECTED_ERROR, ex2);
      }
      

      【讨论】:

        猜你喜欢
        • 2017-07-10
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多