我正在使用Python 3.7和Django,试图弄清楚如果抛出特定异常,如何重新运行try块。我有
for article in all_articles:
try:
self.save_article_stats(article)
except urllib2.HTTPError as err:
if err.code == 503:
print("Got 503 error when looking for stats on " + url)
else:
raise
我想要的是如果发生503错误,请重新运行“ try”中的部分,最多3次。有没有简单的方法可以在Python中做到这一点?
答案 0 :(得分:2)
您可以在for
循环中打开它,在break
块成功的情况下,可以try
来打开它:
for article in all_articles:
for __ in range(3):
try:
self.save_article_stats(article)
break
except urllib2.HTTPError as err:
if err.code == 503:
print("Got 503 error when looking for stats on " + url)
else:
raise
如果错误代码为 not 503,则错误将重新产生,并且控制流将退出for
循环。