强制错误时,我似乎无法打印出我的except语句。
<Location / >
RewriteEngine on
RewriteCond %{REQUEST_URI} !/api/* ## THIS IS THE LINE TO ADD!
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.html [L]
</Location>
答案 0 :(得分:0)
以下行;
if plant in PLANT_DATA.keys():
检查提供的键在字典中是否存在。您永远不会到达except子句,因为您已经在前面的代码中执行了检查。这就是为什么每当您输入不正确的值时,它都会再次提示您输入问题。
如果您需要打印错误,请尝试此操作。
if plant not in PLANT_DATA.keys():
print("That is not a valid plant! Please try again.")
else:
print("Looks like you want to hear about {} plants!".format(city))
答案 1 :(得分:0)
您快到了。是的:
print("Looks like you want to hear about {} plants!".format(city))
几乎可以肯定会引发错误,因为未定义city
。但这不是保证引发错误的原因,因为您有逻辑阻止程序:
if plant in PLANT_DATA.keys():
如果不是True
,则永远不会进入异常处理程序。它将回到外部while
循环的另一个循环。要超越此限制,您需要输入key
中的有效PLANT_DATA
。因此,将daisy
,rose
或cucumber
作为输入将清除此检查并确保您抛出错误。但是,它将是NameError
,而不是ValueError
。
抛出错误非常容易;例如,int('hi')
会引发错误,但根本不适合您要尝试的内容。因此,我认为您在不改变逻辑的情况下保持原样是正确的。您正在流连python testing(这不是一件坏事)