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



我有以下代码来检查此错误,但我没有得到超时错误,它将转到else条件

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

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

爪哇文档

请发送所有类的代码。您需要提供"客户端"变量的类,以便人们可以提供帮助。

还有一件事,与其在"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);
}

最新更新