Python3错误处理
问题描述:
这是我的Python3程序。Python3错误处理
try:
while true:
A
except NewConnectionError:
print('error detection')
我想当上面的程序捕获NewConnectionError时,打印日志后它会回到“A”。但事实并非如此。
如何更改上述代码以在程序捕获错误时递归地重新启动“A”。
谢谢。
P.S. 不仅重新启动,而且保持运行也对我有好处。 感谢您的快速回复。
答
封装在try /除while循环(而非其他方式)的内部块:
while True:
try:
A()
except NewConnectionError as err:
# This will also print the reason the exception occurred
print ('Detected error: {}'.format(err))
else:
print("A() returned successfully.")
finally:
print ("Next loop iteration...")
您可以放心地忽略else
和finally
块。为了说明的目的,我只列入了它们。
else
只有在不发生异常(即,如果try块中的语句成功)时才会执行。
finally
始终执行,无论是否发生异常。
答
你需要的地方,而尝试上述方法使你的代码将是这样的:
while true
try
-------
except
--------
您的代码格式已完全中断。请[编辑]并修复它。 –
为什么递归? – srattigan
当程序发现错误时,我想保持它运行。 –