我想问一下关于事务回滚的问题

我想问一下关于事务回滚的问题

之前在事务处理单元时加上注解就可以实现回滚,而在开发注册店铺时强调了要加 RuntimeException才能实现回滚,下载开发商品添加又没有用到 RuntimeException,想知道这其中的原理,详解,谢谢老师

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好。

1、首先我们要知道,事务回滚是遇到了错误后的一种应急操作。一定是遇到了逻辑上不合理的操作或者是数据库操作异常等异常。只有异常可以触发回滚。

但是我们又不想因为这个异常而使服务器停下。所以我们要做的,不仅是使用@Transactional注解使数据库操作回滚。我们还需要知道具体发生了什么样的异常,以便将其捕获后处理,使后续的代码中不会再报错。因此我们自己定义了RuntimeException,捕获异常,自己向外抛出异常,令

2、例如在商铺注册的时候:

http://img1.sycdn.imooc.com//climg/5d5cb9f9000108e811970673.jpg

3、在商品添加中仍然有:

http://img1.sycdn.imooc.com//climg/5d5cba370001e05408760277.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 邓优秀 提问者 #1
    还有一点没想明白,我认为出错了就会回滚,但是不用RuntimeException抛出异常就不会回滚,是因为try会使程序跳过这个错误的原因吗
    2019-08-21 14:21:04
  • 芝芝兰兰 回复 提问者 邓优秀 #2
    是的,try后面的catch就捕获了这个异常,即便是catch体内什么都不写,编译器依然会认为你已经对其进行了处理了。但是在catch体内,我们又throw了新异常,就相当于上抛了异常。
    2019-08-21 14:50:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师