根据前面的可怕帮助,我现在有一个异常处理问题。 我有一张11块地的清单,要根据它们的索引编号来选择。如果用户选择大于11,则应请求他们重新输入,但atm,我得到索引器错误:列表索引超出范围。 我本以为except行可以处理其他任何事情…但它一定是一个缺失的行??在
try:
response = raw_input("Select a monitoring plot from the list (0-11): ")
if response == 'q':
confirm = raw_input('Confirm quit (y/ n)...')
if confirm == 'y':
print 'Bye'
break
else:
continue
selected = dataList[int(plotSelect) + 1]
print 'You selected : ', selected[1]
except ValueError:
print "Error: Please enter a number between 0 and 11"
当用户输入非数字时,
ValueError
将出现。(所以int("hello")
抛出ValueError
)当用户输入大于列表中元素数的数字时,将抛出
IndexError
。(例如,range(5)[7]
您可以尝试使用如下循环获取第一个输入
except ValueError
只捕获ValueError
。您还需要添加IndexError
:except ValueError
表示只捕获ValueError
类型的执行。如果您想以不同的方式处理IndexError
,请包含一个catch,或者同时捕获并以相同的方式处理它。在相关问题 更多 >
编程相关推荐