我们正在使用弹簧启动 with 春云 and Spring-cloud-Netflix with Spring-cloud-feign.
我们正在创建我们的网关应用程序,它的帮助是Feign
将尝试与我们沟通authentication
微服务以验证其凭据。在这里你可以看到我们的 Feign 的一个例子authentication
client:
@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
or a TimeoutException
已被抛出?我们已经定义了自己的ErrorDecoder
但似乎这种“某种侦听器”仅在请求到达并返回响应时才起作用(在我们的例子中是authentication
客户)。那么,我们如何管理其他异常呢?
Best,
错误解码器正在解码 HTTP 错误响应(500、404、401 等)。客户端调用中会出现异常,因此使用try/catch
应该管用。
try {
return client.home();
} catch (RuntimeException e) {
e.printStackTrace();
throw e;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)