我希望在原子块中捕获并处理IntegrityError
并继续执行我的代码。例如:
@transaction.atomic()
def parent_func():
try:
child_func()
another_child_func()
except Exception as e:
self.stderr.write('Cannot save: %s' % str(e))
transaction.rollback()
else:
transaction.commit()
def child_func():
a = ClassA()
try:
a.save()
return a
except (IntegrityError, ValidationError) as e:
self.stderr.write('Cannot save "%s": %s' % (a, str(e)))
return None
def another_child_func():
b = ClassB()
b.save()
return b
在我处理函数child_func
中的异常后,我在函数another_child_func
中捕获了异常。
以下是例外消息:
django.db.transaction.TransactionManagementError:发生错误 当前的交易。直到结束才能执行查询 '原子'块。
我想知道在原子块中处理异常的可能性是什么。