Dubbo自定义异常捕获的问题

https://blog.csdn.net/chentian610/article/details/53691114

异常类接口类在同一个jar包下面的时候,会使用自定义的异常类抛出,否则dubbo会自定义封装。

解决方案:

在公共包中设计通用异常类CommonException,在接口包中定义子异常,继承通用异常类

各个接口模块(maven工程为单位)单独定义异常对象继承CommonException,每个模块抛出自己的模块异常(如用户模块抛出UicException),客户端中用CommonException统一捕获处理。

 

原因:com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke

dubbo处理异常的逻辑依次执行:

1 如果是checked异常,直接抛出

2 方法签名上有声明,直接抛出

3 异常类与接口类在同一个JAR包,直接抛出

4 JDK自带异常,直接抛出

5 dubbo自身异常[RpcException],直接抛出

6 其他包装成RuntimeException抛出

 

posted @ 2019-02-01 23:26  sw008  阅读(1344)  评论(0编辑  收藏  举报