我想要返回自定义异常serviceException异常,好像被切换数据源异常拦截,实际上没有发生数据源切换异常

Blade 未结 1 28

一、该问题的重现步骤是什么?

自定义serviceException异常后,无法抛出自定义异常,好像被切换数据源异常拦截

二、你期待的结果是什么?实际看到的又是什么?

可以抛出自定义serviceException

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX,Linux系统

image.png

四、请提供详细的错误堆栈信息,这很重要。

img_v3_02ur_3133ce6d-428c-4519-94b9-34fb891d5a5g.jpg

image.png

五、若有更多详细信息,请在下面提供。

1条回答
  • 如果在切换数据源的过程中自己抛异常,确实是会被拦截,再往上层把你自定义的异常信息通过 TenatDataSourceException 二次抛出。

    如果切换数据源的时候不错处理,那么里面的各种异常都会导致线程错乱,所以切换的逻辑代码里是需要主动catch才行。当然如果你一定要修改逻辑,那么改这个切换的拦截器类的逻辑就可以了。

    作者追问:1小时前

    麻烦问一下,怎么改切换的拦截器类的逻辑,我在bldex-tool中改了拦截器所在的jar包
    image.png

    这样修改的:
    image.png
    但是启动就报错了:

    Caused by: java.lang.ClassNotFoundException: org.springblade.core.db.dynamic.processor.DynamicDataSourceProcessor



    回答: 1小时前

    删掉这个jar,重新下载官方原版jar。你到你自己对应的工程里创建同目录的package包然后把这个拦截器的文件源码复制到对应package目录,再修改逻辑就行了,启动会直接覆盖掉jar包内的逻辑。

    0 讨论(0)
提交回复