今天偶然发现一个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块都省掉