赞
踩
最近在使用Feign调用时,出现了异常,原本使用的是fallback,直接返回了自定义的结果
@Override
public Result findUserNameById(String id) {
return new Result(false, StatusCode.ERROR,"啊哦,用户客户端出现了异常");
}
但是无法获取具体的异常信息
将fallback换成fallbackFactory
/** * @author * @date 2019/9/2215:37 */ @FeignClient(value = "weblog-article",fallbackFactory = ArticleFallBackFactory.class,configuration = FeignInterceptor.class) public interface ArticleClient { /** * 根据文章id封装搜索文章实体 * @param aid * @return */ @GetMapping("article/client/packageArticle/{aid}") Result packageArticle(@PathVariable("aid") String aid); }
/** * @author yunshi * @date 2019/10/2010:37 */ @Component public class ArticleFallBackFactory implements FallbackFactory<ArticleClient> { @Override public ArticleClient create(Throwable throwable) { System.out.println("搜索微服务调用文章客户端出错:"+throwable.getMessage()==null?"":throwable.getMessage()); throwable.printStackTrace(); return new ArticleClientImpl() { @Override public Result packageArticle(String aid) { return new Result(false, StatusCode.ERROR,"搜索微服务调用文章客户端出错 method:packageArticle"); } }; } }
有时候throwable的getMessage没有捕获到个别异常信息,干脆就直接打印了堆栈信息
/**
* @author yunshi
* @date 2019/9/2215:41
*/
public interface ArticleClientImpl extends ArticleClient {
}
实操可用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。