如何处理同一个程序时保护我的程序免受另一个异常的影响?

时间:2017-07-26 07:40:46

标签: python python-3.x exception-handling

try:
    grossCheck = int(input("How much? (figures only pls.)\n"))
except ValueError:
    grossCheck = int(input("How much? (FIGURES ONLY PLS.)\n"))

tenPees = grossCheck * 0.1
realPees = grossCheck - tenPees

print("you've got " + str(realPees))
我得到了:

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

During handling of the above exception, another exception occurred:

事情是我之前处理过相同的异常。 我试图处理它,以防用户在不破坏程序的情况下仍然多次输入错误的值。

2 个答案:

答案 0 :(得分:0)

您需要以某种方式处理异常。一种方法是不断询问:

try: 
    grossCheck = int(input("How much? (figures only pls.)\n")) 
except ValueError: 
    while True:
        try: 
            grossCheck = int(input("How much? (FIGURES ONLY PLS.)\n"))
            break
        except ValueError:
            pass

答案 1 :(得分:0)

while 1:
    try:
        grossCheck = int(input("How much? (figures only pls.)\n"))
        tenPees = grossCheck * 0.1
        realPees = grossCheck - tenPees

        print("you've got " + str(realPees))
    except ValueError:
        print('You must enter number')

这是处理错误的正确方法之一。 你得到的错误,是因为你把输入放在除了块之外,你不应该这样做,除了你应该打印错误,如果你想要,或者只是重复尝试阻止