博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot FeignClient 捕获异常信息
阅读量:6214 次
发布时间:2019-06-21

本文共 1228 字,大约阅读时间需要 4 分钟。

hot3.png

FeignClient 默认的解析器:

public static FeignException errorStatus(String methodKey, Response response) {  // 这里做了处理  String message = format("status %s reading %s", response.status(), methodKey);  try {    if (response.body() != null) {      String body = Util.toString(response.body().asReader());      message += "; content:\n" + body;    }  } catch (IOException ignored) { // NOPMD  }  return new FeignException(response.status(), message);}

截获的异常如下:

status 400 reading PaymentInterface#methodName(ParamType,ParamType);

content: {"type":"http://httpstatus.es/404","title":"未找到资源","status":400,"detail":"这里是详细的异常信息"}  -> 

cz.jirutka.spring.exhandler.messages.ErrorMessage

自定义解析器:

@Configurationpublic class FeignErrorDecoder implements ErrorDecoder {    @Override    public Exception decode(String methodKey, Response response) {        try {            // 这里直接拿到我们抛出的异常信息            String message = Util.toString(response.body().asReader());            return new RuntimeException(message);        } catch (IOException ignored) {        }        return decode(methodKey, response);    }}

异常信息如下:

{type: "",title: "未找到资源",status: 400,detail: "这里是详细的异常信息"}

此时就能得到我们的Rest风格的Exception了

转载于:https://my.oschina.net/u/3757402/blog/1609297

你可能感兴趣的文章
用SelectSingleNode()方法查找xml节点一直返回null
查看>>
微信小程序跨页面获取数据示例
查看>>
laravel模型中设计使用单选按钮的方法:
查看>>
关于快速幂……
查看>>
一句话解释回调函数
查看>>
smarty string_format用法 取小数点后2位
查看>>
ios 清除缓存文件
查看>>
JavaScript中的构造函数 renturn
查看>>
Python之函数
查看>>
POJ 1062 dij
查看>>
springboot1.5.9整合websocket实现实时显示的小demo
查看>>
quick cocos2d-x 2.2.4 window环境调试
查看>>
JAVA的继承
查看>>
serialize和json_encode 区别
查看>>
2017/09/18
查看>>
问题账户需求分析
查看>>
如何查看电脑是几核的?
查看>>
axios
查看>>
bzoj千题计划206:bzoj1076: [SCOI2008]奖励关
查看>>
NHibernate configuration
查看>>