TransactionRollbackError
当数据库由于序列化失败或死锁而回滚事务时,将引发此错误。
这些异常通常不应在嵌套事务块中被捕获,因为它们对实际的封闭事务和内部 Active Record 状态有副作用。但是,如果您在根事务块之外,则可以捕获它们。
在这种情况下,请注意事务性测试,因为它们在自己的伞形事务中运行测试用例。如果您绝对需要在测试中处理这些异常,请考虑在受影响的测试类中禁用事务性测试 (self.use_transactional_tests = false
)。
由于上述副作用,此异常不应由用户手动引发。
请参阅以下内容