@Corn385

Как работать с конструкцией try except?

Здравствуйте, меня интересует некоторый момент:
Имеется цикл, который проходит по некоему списку list
list = [1,2,3,6,22]
for choice in list:
	try:
		pass
	except:
		pass

Если у нас все нормально, то код в блоке try выполняется, и переходит к следующему элементу списка.
Но если возникает какая то ошибка, то код переходит в блок except, и грубо говоря этот элемент из списка пропускается.
Мне нужно сделать так, чтобы если у какого либо элемента из списка возникала ошибка при выполнении кода, этот элемент заново начинал исполняться. Как мне это реализовать?
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Сделайте ещё один вложенный цикл для попыток обработки каждого из элементов. Можно при успешном выполнении без ошибок выходить из внутреннего цикла досрочно, а при ошибке не выходить досрочно и цикл будет повторять попытки.
Если бы у вас было побольше опыта программирования на питоне, я бы посоветовал бы вам вынести обработку одного элемента в отдельную функцию, а еще посоветовал бы поупражняться в написании декоратора `retry`, который будет оборачивать любую функцию в новую функцию и в случае ошибки повторять её запуск пока не будет исчерпан лимит попыток.
По-моему такой пример или упражнение, кстати, и было в одной из книг Лутца. Но вам подойдёт практически любая, где рассматриваются основы языка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект