簡體   English   中英

為什么出現 NameError 時異常語句不執行?

[英]Why does the exception statement not executes when NameError occurs?

通過以下方式定義 function 和 try/except/else 語句后:

def divide(a, b):
    try:
        a / b
    except:
        return False, 'Error occurred'
    else:
        return True, 'Division successful'

當提供給 function 的參數是未定義變量的名稱時,不會引發異常。 例如:

divide(2, J)

而不是在 except 語句下執行代碼塊,而是顯示以下錯誤:

NameError: name 'J' is not defined

我曾嘗試重寫 except 語句( except NameError: ),但無濟於事。

如果有人能解釋為什么在這種情況下不執行 except 語句,我將不勝感激,如果出現 NameError,如何確保它的執行?

J在您的情況下是一個變量,未定義。 甚至在 function 運行之前, J被調用但不存在,因此您的錯誤:名稱“J”未定義。 我假設您想使用將參數作為字符串傳遞的divide(2, "J")來測試您的 function。 這應該會根據需要提高 except 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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