繁体   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