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