Как обработать тайм-аут подключения клиента - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть код ниже, чтобы проверить эту ошибку, но я не получаю ошибку тайм-аута при переходе в другое состояние

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

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Вам нужно поймать feign.RetryableException вместо SocketTimeoutException.

Джавадо c

0 голосов
/ 12 февраля 2020

Пожалуйста, пришлите весь код класса. Вам нужно предоставить класс переменной "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);
}
...