# Exception ###### tags: `Java` Spring的AOP事務管理預設是針對unchecked exception回滾。 也就是預設對RuntimeException()異常極其子類進行事務回滾。 Exception作為基類,下面還分checked exception和unchecked exception。如果客戶端可以通過其他的方法恢復異常,那麼這種異 常就是checked exception;如果客戶端對出現的這種異常無能為力,那麼這種異常就是Unchecked exception;簡單來說,繼承於 RuntimeException的都是unchecked exception。 Error: 1.總是不可控制的(unchecked) 2.經常用來用於表示系統錯誤或低層資源的錯誤 3.如何可能的話,應該在系統級被捕捉 Exception: 1.可以是可被控制(checked) 或不可控制的(unchecked) 2.表示一個由程式設計師導致的錯誤 3.應該在應用程式級被處理 Java 中定義了兩類異常: 1) Checked exception: 這類異常都是Exception的子類。異常的向上丟擲機制進行處理,假如子類可能產生A異常,那麼在父類中也必須throws A異常。可能導致的問題:程式碼效率低,耦合度過高。 2) Unchecked exception: 這類異常都是RuntimeException的子類,雖然RuntimeException同樣也是Exception的子類,但是它們是非凡的,它們不能通過client code來試圖解決,所以稱為Unchecked exception 。 解決辦法: 1.在針對事務的類中丟擲RuntimeException異常,而不是丟擲Exception。 2.在txAdive中增加rollback-for 或 no-rollback-for spring事務回滾.預設情況,unchecked異常,即執行時異常runntimeException回滾事務;checked異常,即Exception可try{}捕獲的不會回滾.當然也可配置spring引數讓其回滾.
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up