首页 > 解决方案 > 捕获异常后如何返回尝试阻止

问题描述

捕获异常后如何回到我的 try 块?下面是代码:

def main():

    while True:
        try:
            a = int(input("Enter first value"))

        except ValueError:
            print("Please enter a number")
            main()
        try:
            b= int(input("enter second value"))
        except ValueError:
            print("Please enter a number")
            main()

因此,如果我输入一个字母而不是数字,则会捕获异常,但是如何返回在 try 块中打印语句以允许添加一个数字。我添加了 main() 命令,但它仅适用于第一个变量,因为如果异常在第二个变量中,它会返回获取第一个值的输入。

以下是上述代码的输出:

Enter first value: a
Please enter a number
Enter first value 5
Enter second value a
Please enter a number
Enter first value 5

最后一条语句应该回到第二次尝试而不是第一次。

标签: pythonpython-3.xexceptiontry-except

解决方案


我会这样做:

def getn(s):
    while True:
        try:
            a = int(input(f"Enter {s} value"))
            break
        except ValueError:
            print("Please enter a number")
    return a

def main():

    while True:
        a= getn("first")
        b= getn("second")
    
main()

当然你也可以把逻辑放在 main 中..


推荐阅读