如何处理假客户端连接超时

How to handle feign client connection timeout

我有下面的代码来检查这个错误,但我没有收到超时错误,它会转到其他条件

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);
            }
        }

请发送 class 的所有代码。您需要提供 class 个 "client" 变量,以便人们提供帮助。

还有一件事,而不是检查 "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);
}

您需要抓住 feign.RetryableException 而不是 SocketTimeoutException

javadoc