【问题标题】:How do I move back to try block after catching exception捕获异常后如何返回尝试阻止
【发布时间】:2021-05-20 22:44:59
【问题描述】:

捕获异常后如何返回到我的 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

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

【问题讨论】:

    标签: python python-3.x exception try-except


    【解决方案1】:

    我会这样做:

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

    【讨论】:

    • 这行得通,谢谢,但是有没有办法回去尝试我写的代码?
    • 您可以将 getn() 的 while true 循环两次复制到 main() 的 while true 循环中,这将为您提供两个嵌套的 while 循环,替换 a= getn() 和 b= getn( ) ...
    猜你喜欢
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2011-12-05
    相关资源
    最近更新 更多