java在service层需要每个方法上都加上抛出异常吗?

malie0 发布于 10/12 12:01
阅读 240
收藏 0

默认spring事务抛出异常回滚只会是runtimeException,有些异常没法直接回滚,需要自己定义回滚的异常类,需要在方法的异常注释里写回滚的异常类型,同时如果方法里没加上throws Exception的话非runtimeException也不会回滚,不知道大家公司里代码规范会不会强制要求方法都加上异常的处理?我看了下阿里的代码规范并没有这部分的规定,但是我感觉如果不加异常控制的话碰到非runtimeException可能就没法回滚了。

加载中
0
魔力猫
魔力猫

非RuntimeException异常,都是编译器强制让你处理的。你不处理能编译过得去么。

0
起个起个名字都难
起个起个名字都难

@Transactional默认捕获RunTimeException异常,如果自定义异常A继承Exception,并且不指定rollback=Exception.class,这样就捕获不到A异常了,所以要加上rollback=Exception.class。但是我没试过非Exception异常回滚的情况,有一次因为JDK版本缘故,抛出了非Exception异常,导致没有错误信息输出。

返回顶部
顶部