跳到內容 跳到搜尋

TransactionRollbackError 會在交易因序號化失敗或死結而遭到資料庫回滾時引發。

這些例外狀況通常不應該在內層交易區塊中搶救,因為它們會在實際的外層交易中產生副作用以及內部的 Active Record 狀態。如果你在最上層交易區塊上方,還是可以搶救它們。

但是,在這種情況下,請提防交易測試,因為它們會在它們自己的傘狀交易中執行測試案例。如果你真的必須在測試中處理這些例外狀況,請考慮停用受影響測試類別中的交易測試 (self.use_transactional_tests = false)。

由於上述副作用,使用者不應該手動引發此例外狀況。

請參閱下列文件