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