强制 try-except 失败的最佳方法 (Python)?

Best way to force a try-except to fail (Python)?

我正在编写一个代码,要求用户进行两个输入,然后将使用 try: 检查它们是否都是整数,然后使用 If 语句检查它们是否都大于 0。如果这些条件中的任何一个不符合则显示错误'Positive non zero integers only please.'。显示此消息的最佳方式是什么,无论它失败的原因如何,而只需编写该行一次(而不是在 If 语句之后有另一行打印)?如果 If 语句为真,我在下面有一行随机文本,这会导致 try: 失败并且代码为 运行 the except:

try:
    runs, increment = int(runs), int(increment)
    if (increment == 0):
        print ("I can't increment in steps of 0.")
    elif (increment < 0 or runs <= 0):
        this line has no meaning, and will make the program go to the except: section
except:
    print('Positive non zero integers only please.')

这是我想要的,但并不是一个很好的解决方案,所以我很好奇是否还有其他可能有效的方法,或者我应该在 if 语句之后放置相同的打印行吗? (我不能为每个失败单独写消息,因为这是一个学校项目,所以输出需要与我们得到的完全一样)

你想要的是raise语句:

try:
    runs, increment = int(runs), int(increment)
    if increment < 1 or runs < 1:
        raise ValueError
except ValueError:
    print("Positive non zero integers only please.")

请注意,如果 int() 无法将值转换为 int,则会引发 ValueError,因此 except ValueError 应该捕捉任何一种情况。 (有一个捕获未知错误的裸 except: 是一个坏习惯,它会使您的代码更难调试;最好早点打破它!)