try catch使用中,catch里已經手動拋出異常了,聲明式事務還是失效問題


聲明事務@Transactional 默認是遇到 RuntimeException拋出則回滾,下面代碼將范圍擴大,遇到Exception被拋出就回滾(210行)。

如果主要代碼被try catch 了,catch 里面如果沒有拋出異常(232行),吞沒了異常,那么事務會失效。這一點大家已經都知道了。

現在要討論是另一種值得注意的情況是 : 加上了finally 之后,catch里面即使拋出了異常,事務也會失效。如下代碼事務是有效的,但如果將 234 和236 行注釋放開,再運行代碼事務就會失效了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM