如何处理假客户端连接超时
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
。
我有下面的代码来检查这个错误,但我没有收到超时错误,它会转到其他条件
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
。