无法Catch 自定义Exception
我们的系统 采用 springboot+dubbo 前后端分离
分为common provier controller api 四个模块
common层存放公共的代码
在 provider 抛出 自定义异常 extends RuntimeException
在controller层 catch 自定义异常 返回错误信息 catch Exception 返回系统错误
之前 自定义异常 类 位于 provider层, controller层直接 将rpc的结果返回,异常处理位于 provider中
由于 某个接口逻辑额外复杂, 需要在 controller层使用此异常类 便将 自定义异常类
移动到 common层
突然发现无法在controller层catch 自定义异常 而是 catch到RuntimeException
获取到的ex.getMessage 也是带自定义异常类名 + message
怀疑由于 rpc层 和 controller层使用到不同的class导致
=> controller
common => api => provider
========> provider
初步怀疑是此依赖链导致的问题
解决:
将原先的 自定义Exception 移动到 api层
依赖链变为
api => provider
=> controller
问题解决
具体原因 待进一步分析