У меня есть следующий код, который делает http-запрос с использованием urllib2
. Код находится между try/except за исключением ошибки http. В какой-то момент я получаю urllib2.HttpError
. Я поймал это, и я хочу сделать вышеприведенный код (за пределами catch) n раз, прежде чем обрабатывать исключение в другом вопросе. Вот следующий код с goto .label
, чтобы продемонстрировать, что я хочу сделать, но не нашел, как это сделать.python: looping from exception
recoveryTimes = 5
try:
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
label .request (this is where i want to jump after the exception)
urllib2.urlopen(req)
response = urllib2.urlopen(req)
the_page = response.read()
except urllib2.HTTPError:
if (recoveryTimes > 0):
goto .request
else:
self.setUrllib2Proxy()
для подведения итогов, если http-запрос, если не удается, я хочу попробовать снова и снова. Только после неудачных «n» раз я хочу перейти к инструкции else.
Вы можете рассмотреть возможность использования [reitinging] (https://pypi.python.org/pypi/retrying). –