捕获异常后如何返回 try 块

How do I move back to try block after catching exception

如何在捕捉到异常后返回到 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

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

我会这样做:

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里..