跳至内容 跳至搜索

TransactionRollbackError 当数据库由于序列化失败或死锁而回滚事务时,将引发此错误。

这些异常通常不应在嵌套事务块中被捕获,因为它们对实际的封闭事务和内部 Active Record 状态有副作用。但是,如果您在根事务块之外,则可以捕获它们。

在这种情况下,请注意事务性测试,因为它们在自己的伞形事务中运行测试用例。如果您绝对需要在测试中处理这些异常,请考虑在受影响的测试类中禁用事务性测试 (self.use_transactional_tests = false)。

由于上述副作用,此异常不应由用户手动引发。

请参阅以下内容