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