try-catch怎樣寫可以讓spring認為拋出的異常是運行時異常,從而執行事務操作??
本節視頻老師說,不適當使用try-catch會造成spring以為不是運行時異常,從而不執行事務操作,那如何寫try-catch,可以保證spring以為拋出的異常是運行時異常,從而執行回滾??
本節視頻老師說,不適當使用try-catch會造成spring以為不是運行時異常,從而不執行事務操作,那如何寫try-catch,可以保證spring以為拋出的異常是運行時異常,從而執行回滾??
2018-01-15
舉報
2019-01-21
????????????catch?(SeckillCloseException?e1){ ????????????throw??e1; ????????}?catch?(RepeatKillException?e2){ ????????????throw?e2; ????????}?catch?(Exception?e){??//?其它異常 ????????????logger.error(e.getMessage(),e); ????????????//?所有編譯期異常轉化為運行期異常 ????????????throw?new?SeckillException("seckill?inner?exception"+e.getMessage()); ????????????return??new?SeckillExecution(seckillId,SecKillStateEnum.INNER_ERROR); ????????}2018-05-04
意思是有了異常你要繼續往上拋。不能自已默默catch處
2018-01-16
看最終service方法最終是否拋出了運行時異常吧,如果在方法中拋出了運行時異常又catch了的話,spring就檢測不到,不會回滾