微服务之业务模块抛出的异常无法被公共代码模块的自定义全局捕获异常捕获到

tech2024-09-26  17

项目经理某天对我说,我上一任程序员之前在业务模块抛出的异常无法被公共代码模块的自定义全局捕获异常捕获到,现在是在业务模块内添加了跟公共模块相同的全局捕获异常代码文件,让我排查下是什么原因导致失效的。 我人为的制造了异常让代码抛出异常,结果正如项目经理所言,假如业务模块内没有写全局捕获,那么异常将自己抛出,不走公共模块的自定义全局异常捕获。其实刚开始我也是挺困惑的,以为是使用了springsecurity的原因,百度了下,发现**@CtrollerAdvice必须要让spring扫描到才生效**,于是我检查了下业务模块的启动类,真让我发现了问题所在 我的业务模块启动类路径是com.xxx.auth,然而我公共代码模块全局捕获的代码的路径为com.xx.common.core.exception。于是我在业务模块的启动类上加上了

@ComponentScan(basePackages = {"com.xx.common.core.exception","com.xxx.auth"})

再次启动业务模块的服务,发现异常已经可以在公共代码模块捕获到了。 加油奥里给

最新回复(0)