【发布时间】:2022-12-06 07:41:25
【问题描述】:
我正在尝试对 Python 进行练习。为此,我必须使用以下功能:
def getNumber() :
x = input ('Choose a number: ')
if x != 17:
raise ("ErrorBadNumber","17 is a bad number")
return x
练习说创建另一个使用getNumber 的函数并处理异常ErrorBadNumber。
我创建了函数getNumber_2 来尝试解决这个问题:
def getNumber() :
x = input ('Choose a number: ')
if x != 17:
raise ("ErrorBadNumber","17 is a bad number")
return x
while True:
def getNumber_2 ():
try:
getNumber ()
except ErrorBadNumber:
print('Write another number, please')
getNumber ()
然后,出现错误:“未定义的名称‘ErrorBadNumber’”。无论如何,当我只执行函数getNumber时,异常不会发生。我不知道为什么。提前致谢。
【问题讨论】:
-
你为什么要在无限循环中定义一个新函数
getNumber_2()? -
第一个功能是按原样提供给您的,还是您的代码?这不是 raise an exception 的有效方式。
raise的参数必须是异常实例或异常类。您正在提供一个元组。 -
这里有几个问题。首先,检查格式、缩进问题。接下来,这段代码永远不会调用
getNumber_2()。然后,raise的语法是raise [Exception]而不是raise [tuple[str]]。最后,ErrorBadNumber从未被定义。
标签: python