2

Мы используем Spring-загрузки с весной-облаком и весной-облаком-Netflix с весной-облака симулировать.Как управлять ошибками Fign?

Мы создаем наше приложение Gateway, которое с помощью Feign попытается связаться с нашим микросервисом , чтобы подтвердить их учетные данные. Здесь вы можете увидеть пример нашего Притвориться authentication клиента:

@FeignClient(value="auth", configuration = AuthClientConfiguration.class) 

public interface AuthClient { 
    @RequestMapping(method = RequestMethod.GET, value = "/tokens", consumes = MediaType.APPLICATION_JSON_VALUE) 
    Single<Session> getSession(@RequestHeader("Authorization") String token); 
} 

Вопрос в том, как мы можем иметь дело со всеми исключениями, которые могут быть подняты клиентом? Я имею в виду, как мы можем, например, поймать, что был выброшен NetworkException или TimeoutException? Мы определили наш собственный ErrorDecoder, но, похоже, этот «вид слушателя» работает только тогда, когда запрос прибыл и ответ был возвращен (в нашем случае от клиента authentication). Итак, как мы можем справиться с этими другими исключениями?

Лучший,

ответ

0

декодеры об ошибках декодирования ответов об ошибках HTTP (500, 404, 401, и т.д. ...). Исключения будут возникать в клиентских вызовах, поэтому использование try/catch должно работать.

try { 
     return client.home(); 
    } catch (RuntimeException e) { 
     e.printStackTrace(); 
     throw e; 
    } 
+0

Нет ли более конкретного исключения для улова? – francescou

+0

Спасибо @spencergibb. Это сработало, дело в том, что для повторного использования этого кода мы должны его включать. Мы только что создали новый класс, который действует как декоратор, а затем он управляет всеми «общими» исключениями, такими как «Тайм-ауты» и т. Д. –