【发布时间】:2021-05-26 20:59:40
【问题描述】:
通过以下方式定义函数和try/except/else语句后:
def divide(a, b):
try:
a / b
except:
return False, 'Error occurred'
else:
return True, 'Division successful'
当提供给函数的参数是未定义变量的名称时,不会引发异常。例如:
divide(2, J)
不是在except语句下执行代码块,而是显示以下错误:
NameError: name 'J' is not defined
我曾尝试重写 except 语句 (except NameError:),但无济于事。
如果有人能解释为什么在这种情况下不执行 except 语句,我将不胜感激,如果出现 NameError,如何确保它的执行?
【问题讨论】:
-
try块在您的函数内部;尝试评估名称J时,调用者会在调用函数之前引发异常。
标签: python exception error-handling nameerror