怎样确保java代码在抛出异常时都回滚,而不只是运行时异常
2018-07-17 16:05
363 查看
/** TransactionAspectSupport手动回滚事务:*/ @Transactional(rollbackFor = { Exception.class }) public boolean test() { try { doDbSomeThing(); } catch (Exception e) { e.printStackTrace(); //使用TransactionAspectSupport确保出现异常以后,事务能回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return false; } return true; }
编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚。优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了。
声明式事务:就是使用SpringAop配置事务,这种方式大大的简化了编码。需要注意的是切入点表达式一定要写正确。
注解事务:直接在Service层的方法上面加上@Transactional注解。
相关文章推荐
- 多次运行,端口被占用错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception
- java代码异常捕获throws抛出异常
- java事务异常——Spring事务异常回滚,捕获异常不抛出就不会回滚
- 异常代码,抛出:java.lang.NumberFormatException: For input string 解决。
- java抛出异常后代码继续执行的情况
- CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法
- java中异常抛出后代码还会继续执行吗?
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- java中异常抛出后代码还会继续执行吗
- Java| Java异常新理解RuntimeException(不抛出异常,程序运行时出错会有错误信息)
- java中异常抛出后代码还会继续执行吗
- .“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是一个错误。”
- java中异常抛出后代码还会继续执行吗
- java抛出异常后面的代码是否能执行?
- 浅谈java中异常抛出后代码是否会继续执行
- java事务异常——Spring事务异常回滚,捕获异常不抛出就不会回滚
- java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
- java 抛出异常后,还会执行后面代码吗?
- java中抛出RuntimeException异常,为什么可以不用撰写代码去捕获它?
- Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法