是否可以为try语句指定例外?

时间:2017-03-26 18:46:35

标签: python python-3.x

目前我有这个:

try:
    number = int(input('Please enter a number greater than 20'))
    if number > 20:
        print(number)
except ValueError:
    print('We encountered an error. Please try again.')

有没有办法将if语句集成到try中?基本上,如果输入不大于20,则转到除ValueError行之外。我有点理解try语句是如何工作的,但我只能将它用于非常简单的事情,我试着阅读它并且我只是感到困惑。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以更改逻辑并测试数字是否无效以及raise ValueError()

try:
    number = int(input('Please enter a number greater than 20'))
    if number <= 20:
        raise ValueError()
    print(number)
except ValueError:
    print('We encountered an error. Please try again.')

您可以在构造函数Value('Value <= 20')中添加消息,但是您不会在except子句中打印出消息,因此不需要。
你可以将它包装成永久循环:

while True:
    try:
        number = int(input('Please enter a number greater than 20'))
        if number <= 20:
            raise ValueError()
        print(number)
    except ValueError:
        print('We encountered an error. Please try again.')
    else:
        break

答案 1 :(得分:0)

您可以在try块中引发/抛出ValueError异常,如下所示:

Manually raising (throwing) an exception in Python