簡體   English   中英

Django:transaction.atomic異常后繼續執行代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM