Tengo el siguiente código para verificar este error, pero no obtengo un error de tiempo de espera, sino que va a condicionar

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

0
Ric 12 feb. 2020 a las 06:34

2 respuestas

La mejor respuesta

Necesita atrapar feign.RetryableException en lugar de SocketTimeoutException.

Javadoc

0
amseager 13 feb. 2020 a las 13:47

Por favor envíe todo el código de clase. Debe proporcionar la clase de variable "cliente" para que las personas puedan ayudar.

Una cosa más, en lugar de verificar la instancia de excepción en la cláusula "catch", debe usar la captura múltiple de esta manera:

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);
}
0
Kevin Le 12 feb. 2020 a las 03:46