在我成功学习高级Java之后,我是Python新手。 在Java中,带有异常处理的输入验证对我来说从来都不是问题,但在某种程度上在python中我有点困惑:
这是一个简单的FizzBuzz程序示例,它只能读取0到99之间的数字,否则,必须抛出异常:
<div class="pull-left image">
<img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle" alt="User Image"/>
</div>
如果我运行并输入例如123代码刚刚终止,没有任何反应。
答案 0 :(得分:0)
如果要捕获异常,则需要确保在出现所需方案时引发异常。
由于try和except之间的代码块本身不引发异常,因此您需要自己引发一个:
try:
if(0<= n <= 99):
...
else:
raise Exception()
except Exception:
...
答案 1 :(得分:0)
当您的条件不满足时,您需要从fizzbuzz()中引发异常。请尝试以下:
if __name__ == '__main__':
def fizzbuzz(n):
try:
if(0<= n <= 99):
for i in range(n):
if i==0:
print("0")
elif (i%3==0 and i%7==0) :
print("fizzbuzz")
elif i%3==0:
print("fizz")
elif i%7==0:
print("buzz")
else:
print(i)
else:
raise ValueError("Your exception message")
except Exception:
print("/// ATTENTION:The number you entered was not in between 0 and 99///")
try:
enteredNumber = int(input("Please enter a number in between 0 and 99: "))
fizzbuzz(enteredNumber)
except Exception:
print("/// ATTENTION: Something went wrong here. Next time, try to enter a valid Integer ////")
此外,您必须捕获特定的异常,而不是捕获一般异常。