[英]Django: continuing code execution after transaction.atomic's Exception
可能這是一個非常愚蠢的問題,但是我正在研究的部分非常重要,因此我想檢查兩次。
引用Django文檔中 with transaction.atomic():
有關的內容with transaction.atomic():
原子性是數據庫事務的定義屬性。 atomic允許我們創建一個代碼塊,在其中保證數據庫的原子性。 如果代碼塊成功完成,則更改將提交給數據庫。 如果有異常,則更改將回滾。 我的猜測:而且以下代碼將不會執行,因為引發了常規python異常,對嗎?
例如:
def my_view(request):
with transaction.atomic():
# bunch of queries
api_call()
return JsonResponse('Done')
如果在transaction.atomic()
塊內發生數據庫異常,是否可以保證不會執行api_call()
? 大thx
那就對了。 這不是特定於Django的:數據庫異常是一種Exception
,如果在Python中引發了Exception
(並且沒有捕獲到),則后續代碼將不會執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.