最近有同事遇到问题:

她在4处手动抛运行异常,5处存在return语句,结果程序在2出现异常时没有抛出运行异常,导致事务不一致.

我们都知道,当程序出现异常时候并且在不采取任何措施的情况下,是会抛出异常并停止方法的.在catch中手动

抛运行异常也是会结束程序的,这两种情况都会触发springAOP的事务回滚,但为什么会出现这种情况呢?

讨论研究了之后才明白,原因是当如果要抛运行异常时,程序就会立马结束,无法执行finally,而finally是必须要执行的

所以,程序设定catch中的异常是执行完finally后才执行,所以,finally中有return就不会返回去

执行抛异常的操作了,同理,当catch中有return halloWord("小名")的时候是会先执行halloWord("小名"),等执行完

finally后才将halloWord("小名")的结果返回,最后结束.

最新文章

  1. Oracle笔记2-数据库设计
  2. Chrome的ERR_UNSAFE_PORT解决办法
  3. 在XP下安装PHP
  4. Sklearn库例子3:分类——岭回归分类(Ridge Regression )例子
  5. 利用MVC编程模式-开发一个简易记事本app
  6. JRebel_修改class后无法正确调试问题解决【2014-03-12】
  7. 基于事件的异步模式——BackgroundWorker
  8. oracle表空间查询维护命令大全之三(暂时表空间)史上最全
  9. JSON对象和字符串转换
  10. zepto callback
  11. Redis 学习笔记-入门
  12. MySQL my.cnf 配置文件注释
  13. 解决水平ListView在ScrollView中出现的滑动冲突
  14. MAC中使用APICloud同步代码错误解决办法
  15. Android相关面试题---面试官常问问题
  16. [总结] NOIP 前的考试记录
  17. Navicat For MySQL--外键建立与cannot add foreign key constraint分析
  18. SQL里执行CLR c#代码
  19. 手机也需“绿色环保”,省电类APP或将成为“标配”?
  20. rank() over,dense_rank(),row_number() 的区别

热门文章

  1. 15-MySQL DBA笔记-运维管理
  2. (十一)SpringBoot之文件上传以及
  3. IE浏览器 Table 兼容问题
  4. 50道高级sql练习题;大大提高自己的sql能力(附具体的sql)
  5. JS基础_构造函数修改
  6. RestControllerAdvice,ControllerAdvice
  7. Unity 自定义"=="操作符 [翻译来源blogs.unity3d,2014/05]
  8. vue-filters(过滤器)
  9. zabbix监控MySQL,Tomcat及配置邮件报警
  10. JAVA Calendar类获取上个月的第一天和最后一天