dubbo异常处理
这是dubbo的主要异常拦截:
源码里面写的比较清楚了,在方法签名有声明,直接抛出,这句话什么意思呢?
就是你在接口的方法里面声明了可能抛出的异常,那么dubbo就会抛出对应的异常,
否则的话,dubbo会封装成RunTimeException抛给客户端,异常信息里面会携带包名.如图:
要是不声明的话,返回:
在前端捕获到的就是RuntimeException,异常message里面是异常的包名: 错误信息,这样我们就不好处理.
当然,源码里面还有写到要是自定义异常跟接口包在一起的话也直接返回,但是我自己试了一下,好像返回的是ioException然后又封装了,到消费端这边又是Rpc异常了.
所以,在dubbo端抛出异常,web端这边也是可以接收的到,只要声明一波,或者在api里面写个自定义异常继承全局自定义的异常即可了.
世界上所有的不公平都是由于当事人能力不足造成的.