这是dubbo的主要异常拦截:

dubbo异常处理_自定义异常


dubbo异常处理_自定义异常_02


dubbo异常处理_包名_03

源码里面写的比较清楚了,在方法签名有声明,直接抛出,这句话什么意思呢?

就是你在接口的方法里面声明了可能抛出的异常,那么dubbo就会抛出对应的异常,

否则的话,dubbo会封装成RunTimeException抛给客户端,异常信息里面会携带包名.如图:

dubbo异常处理_包名_04


要是不声明的话,返回:

dubbo异常处理_封装_05


在前端捕获到的就是RuntimeException,异常message里面是异常的包名: 错误信息,这样我们就不好处理.

当然,源码里面还有写到要是自定义异常跟接口包在一起的话也直接返回,但是我自己试了一下,好像返回的是ioException然后又封装了,到消费端这边又是Rpc异常了.

所以,在dubbo端抛出异常,web端这边也是可以接收的到,只要声明一波,或者在api里面写个自定义异常继承全局自定义的异常即可了.


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6