运行,输入不存在的goodsID,我们期望我们自定义的异常类被我们拦截到,并做一些处理;但是provider生产端抛给消费者的异常竟然是RuntimeException,只是里面的message是我们的业务异常调用栈信息。如下:
不是我们希望的抛给消费者端是DataNotFoundException异常。导致我们消费端没法针对不同的业务进行不同的处理。消费端做了SpringMVC的异常处理返回了:
上面的code为1401,是系统异常编码,并不是DataNotFoundException编码。
我们定义的DataNotFoundException的编码为:1001
为什么产生
我们来看看dubbo的源码进行分析,如果Dubbo的 provider端 抛出异常(Throwable),则会被 provider端 的Exce