一、結論
Spring的事務管理默認只對出現運行期異常(java.lang.RuntimeException及其子類)進行回滾。
如果一個方法拋出Exception或者Checked異常,Spring事務管理默認不進行回滾。
關于異常的分類一下詳細介紹:
1、基本概念
看java的異常結構圖
Throwable是所有異常的根,java.lang.Throwable
Error是錯誤,java.lang.Error
Exception是異常,java.lang.Exception
2、Exception
一般分為Checked異常和Runtime異常,所有RuntimeException類及其子類的實例被稱為Runtime異常,不屬于該范疇的異常則被稱為CheckedException。
①Checked異常
只有java語言提供了Checked異常,Java認為Checked異常都是可以被處理的異常,所以Java程序必須顯示處理Checked異常。如果程序沒有處理Checked異常,該程序在編譯時就會發生錯誤無法編譯。這體現了Java的設計哲學:沒有完善錯誤處理的代碼根本沒有機會被執行。對Checked異常處理方法有兩種
(1) 當前方法知道如何處理該異常,則用try...catch塊來處理該異常。
(2) 當前方法不知道如何處理,則在定義該方法是聲明拋出該異常。
新聞熱點
疑難解答