尝试/除了ValueError之外没有

时间:2014-05-12 20:48:45

标签: python error-handling

我在我的一个程序中遇到这个问题,如果用户意外输入了他们不应该做的事情,那么尝试/排除错误可以使程序更好,但是没有工作。它仍然给我错误,我很难理解为什么。如果这对我的问题真的很重要,那就是错误:

ValueError: invalid literal for int() with base 10: 's'

以下是除了错误之外的代码片段:

    apple_num = int(raw_input(prompt))
    try:
        if apple_num == 3 or apple_num == 2 or apple_num == 1:
            global apples
            apples = apples + apple_num
            time.sleep(0.5)
            pick()
        elif apple_num >= 4:
            print "\nYou can't haul that many apples!"
                time.sleep(0.5)
            pick()
        elif apple_num == 0:
            main()
    except ValueError:
        pick()

我再一次难以理解为什么我仍然会得到错误,一如既往地感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

第一行不在try-except-block中。

答案 1 :(得分:3)

改变这个:

apple_num = int(raw_input(prompt))
try:

对此:

try:
    apple_num = int(raw_input(prompt))