我如何设置我的程序运行直到出现错误,以便如果出现错误它会重试?

问题描述 投票:0回答:1

我有一段代码会不断地作用于数据库并保持更新,但是没有出现网络中断等情况,由于某种原因,程序很容易出错。我希望程序每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

我试过了,但不太清楚

python background
1个回答
0
投票

您尝试过使用异常处理程序吗?这可以捕获错误而不会导致脚本崩溃,例如:

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

一般的异常处理程序并不被认为是非常Pythonic的,如果你知道将抛出的具体错误,那么如果你可以缩小异常的范围,那就更好了,例如

int('hello')
将抛出一个
ValueError
。所以最好写:

try:
    int('hello')
except ValueError:
    print('That can't be converted to an integer!')
© www.soinside.com 2019 - 2024. All rights reserved.