dubbo异常处理

1 全局异常捕获处理类

@ControllerAdvice + @ExceptionHandler

@ControllerAdvice
public class GlobalExceptionHandler {

    private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);

    /**
     * 处理所有不可知的异常
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)
    @ResponseBody
    AppResponse handleException(Exception e){
        LOGGER.error(e.getMessage(), e);

        AppResponse response = new AppResponse();
        response.setFail("操作失败!");
        return response;
    }

    /**
     * 处理所有业务异常 自定义异常
     * @param e
     * @return
     */
    @ExceptionHandler(BusinessException.class)
    @ResponseBody
    AppResponse handleBusinessException(BusinessException e){
        LOGGER.error(e.getMessage(), e);

        AppResponse response = new AppResponse();
        response.setFail(e.getMessage());
        return response;
    }
}

2 dubbo服务异常

provider端抛出异常,consumer捕获并处理异常

使用dubbo提供的自定义异常类 RpcException作为抛出的异常, consumer端进行捕获处理

provider 抛出异常

try{ 
        count = dao.insert(ao);
    }catch(DuplicateKeyException e){
        //抛出rpcException 传递给消费端
        throw new RpcException(int_code,string_msg);
    }

consumer端 捕获

    try {
             result = service.registeredUser(entity);
         }catch (RpcException e){
             log.error(e.getCode() + e.getMessage());
         }

3 需要jar依赖

dubbo依赖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值