我如何设置我的程序运行到出现错误,这样如果出现错误就会再试一次



我有一段代码会不断地对数据库进行操作并保持更新,但没有网络中断等。由于某些原因,程序很容易出错。我希望程序每240秒运行一次,如果出现错误,重复该过程最多3次。如果出现错误3次,我希望它返回到原来的周期,即每240秒,你能帮我吗?如果你能提供信息,让我的程序在后台运行,我也将不胜感激。

import time

class mysql_connections():
def ___init__(self):
.
.
.
def table_query(self):
.
.
.
...
if __name__ == "__main__":
delay = 10
sql = mysql_connections()
while 1:
try:
time.sleep(delay)
sql.table_query()
delay = 240
except:
delay = 10

我试过了,但不太清楚

请参阅本文,了解如何在Stack Overflow上提出一个好问题,并提供一个可重复性最低的示例:

https://stackoverflow.com/help/how-to-ask

这将有助于提供答案,因为它可以让人们测试出确切的问题,并为您提供更多量身定制的问题。

话虽如此,您是否尝试过使用异常处理程序?这可以在脚本不崩溃的情况下捕获错误,例如:

try:
int('hello')
except:
print('That didn't work!')

对于您的案例,您可以在脚本开头附近添加:

error_count = 0

然后对于您的异常处理程序:

try:
# your code here
except:
error_count += 1

然后在接近尾声的某个地方:

if error_count == 3:
# change period to 240 seconds

一般的异常处理程序不太像Python,如果您知道将抛出的特定错误(例如int('hello')将抛出ValueError(,则最好可以缩小异常范围。所以最好写下:

try:
int('hello')
except ValueError:
print('That can't be converted to an integer!')

希望这能有所帮助。

相关内容

最新更新