service层不能只在方法名后面写throws Exception,抛异常时候有可能触发不了事务回滚

tech2026-08-07  0

今天偶然发现一个bug 在调用js引擎ScriptEngineManager时,我不小心将js代码写错了,导致解析js代码时抛异常 然后我就意外的发现,我的事务居然没有回滚, 度娘了一下说不是所有异常都会触发事务的 然后自己还做了个小实验

制作一个ClassNotFound异常,异常抛出,事务没有回滚

Class<?> forName = Class.forName("aaa");

捕捉它然后抛运行时异常,异常抛出,事务回滚

try{ Class<?> forName = Class.forName("aaa"); }catch(Exception e){ throw new RuntimeException("异常!"); }

所以以后写代码时要注意类似问题,不能所有的try-catch块都省掉

最新回复(0)