退出程序而不触发异常处理

时间:2017-08-18 01:53:25

标签: python exception exception-handling

我不确定如何标题我的问题,但我的问题是这个;我将我的程序设置为猜测一个数字并处理异常。程序循环直到数字被猜到,但是当程序退出时,我的异常消息同时显示。我该如何解决这个问题?

num = None
while num != 31:
    try:
        num = int(input("What is the age of my creator? \n"))
        if num < 31:
            print("Higher! Guess again! \n")
        elif num > 31:
            print("Lower! Guess again! \n")
        elif num == 31:
            print("Good Guess!")
            exit()
    except:
        print("Numbers only! \n")

这是我的输出:

我的创作者的年龄是多少? 31 不错的猜测! 只有数字!

处理完成,退出代码为0

1 个答案:

答案 0 :(得分:1)

如果您想保留异常消息,我建议您使用break代替exit,以便更自然地退出程序。试试这个:

try:
    ...
    elif num == 31:
        print("Good Guess!")
        break
except ValueError:
    print("Numbers only! \n")

此外,您应该捕获一个特定的错误,而不是一个全能的except

如果您要隐藏任何错误消息,请改用pass。来自文档:

  

pass语句不执行任何操作。它可以在语句中使用   语法要求,但程序不需要采取任何行动。

try:
    ...
except ValueError:
    pass

pass是一个无害的占位符声明,什么都不做。