dubbo消费者捕获异常最佳实践
-
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将捕获生产者的异常转为系统内部统一使用的自定义异常