成功尝试时中断循环

时间:2019-12-24 15:48:03

标签: python

我意识到这是一个低级的问题,因此提前致歉。我开始使用脚本的时间已经太久了,而且我不常使用python。

我想在下面检查我的循环。在成功的尝试中,它应该以break退出循环。如果在循环结束后尝试失败,则应在最后打印消息。是预期的吗?

for n in range(0, 5):
    try:
        return connect.service.reports().batchGet(
            body = load_request
        ).execute()
    except HttpError as error:
        if error.resp.reason in ['userRateLimitExceeded', 'quotaExceeded', 'internalServerError', 'backendError']:
            time.sleep((2 ** n) + random.random())
        elif 'The service is currently unavailable' in str(error):
            time.sleep((2 ** n) + random.random())
    break
print("There has been an error, the request never succeeded.")

1 个答案:

答案 0 :(得分:0)

到达break的唯一方法是引发异常。毫无例外,您的函数会立即返回。只需完全删除break语句即可。到达最终print调用的唯一方法是自然退出循环,而不会引发或捕获异常。