dubbo一共会抛出两种异常,一个是RpcException,另外一个是RuntimeException。所以消费者在调用dubbo接口要留意
捕获一个Exception异常
try {
return userClient.getOrderById(userInfoDTO);
} catch (Exception e) {
throw new BizException("捕获可见的异常");
}
捕获一个3个Exception异常
try {
return userClient.getOrderById(userInfoDTO);
} catch (RpcException e) {
throw new BizException("dubbo内部异常");
} catch (RuntimeException e) {
throw new BizException("运行时异常内部异常");
} catch (Exception e) {
throw new BizException("其他异常");
}
最佳实践:
消费者调用生产者,至少要捕获一个Exception异常。
也可以捕获三个异常RpcException、RuntimeException、Exception
将捕获生产者的异常转为系统内部统一使用的自定义异常