我意识到这是一个低级的问题,因此提前致歉。我开始使用脚本的时间已经太久了,而且我不常使用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.")
答案 0 :(得分:0)
到达break
的唯一方法是引发异常。毫无例外,您的函数会立即返回。只需完全删除break
语句即可。到达最终print
调用的唯一方法是自然退出循环,而不会引发或捕获异常。