feign.FeignException$BadRequest: [400] during [POST] to [http://skydog-member/member/user/register]

在使用springcloud openfeign远程调用服务的时,若被调用服务出现了异常,

feign.FeignException$BadRequest: [400] during [POST] to [http://skydog-member/member/user/register]_第1张图片

这里应该分为两类异常:

1. 系统运行时异常(可以理解为unchecked异常)

对于这种异常,我们通常是需要返回错误状态码并且一般使用400-500之间的HttpStatus(状态码),因为这个区间的状态码是网络供应商规定的,每个状态码都有其特定的含义。所以openfeign也不例外,openfeign在处理状态码的时候已经内部写死了:

feign.FeignException$BadRequest: [400] during [POST] to [http://skydog-member/member/user/register]_第2张图片

 feign.FeignException$BadRequest: [400] during [POST] to [http://skydog-member/member/user/register]_第3张图片

然后看一下我们的全局异常处理配置:

feign.FeignException$BadRequest: [400] during [POST] to [http://skydog-member/member/user/register]_第4张图片 

但是对于第二类异常:

2. 业务异常

业务异常(自定义异常,也可以认为是checked异常),我们通常是需要将处理结果当成响应数据传递给调用者的,因此我们这里不应该使用BAD_REQUEST状态码,可以使用400-500之外的状态码,确保调用方可以获取到对饮的业务异常信息。

 

你可能感兴趣的:(java)