Java之Exception

在用Spring 的AOP進行事務管理的時候,碰到了一些關於Exception纔回滾的問題。通過網上搜索資料總算明白了,跟網友分享一下。


先介紹一下Exception:

在Java中Exception大概分成3類:

(1)Error級別的錯誤,一般是系統級的錯誤,例如:內存溢出、硬件錯誤等,在應用中無法處理,程序遇到該異常會立即停止。

(2)unchecked exception:一般是Runtime Exception,就是在程序運行的時候才知道的錯誤,在編譯的時候不會出問題。除非手工捕獲異常,否則程序立即停止。

(3)checked exception:是程序員自願拋出的異常,必須捕獲或者拋出,在編譯的時候會提示。程序遇到該異常不會立即停止,會在捕獲異常之後繼續運行。


再介紹Spring AOP:

Spring AOP也就是常說的切面編程,內部原理就是代理模式。通過網上搜索會有很對代理模式的介紹,這裏不作說明。使用Spring AOP的事物管理的時候,會對出現異常的地方自動進行回滾。對於unchecked exception會自動觸發回滾;對於checked exception如果直接捕獲了,並沒有拋出則不會觸發回滾。如果拋出了checked exception,需要手工配置回滾的異常,在事物管理屬性中通過rollback-for配置。


若有不足之處望大家指點!

發佈了29 篇原創文章 · 獲贊 16 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章