Форум сайта python.su
2
Представим простую ситуацию:
try: for value in list: # куча всякого # иногда выскакивают ошибки (разные) except: # обрабатываем ошибки # ?????
Отредактировано Razor (Дек. 27, 2013 22:36:18)
Офлайн
14
во-первых какое значение ?
если интересует что-бы цикл начал работать с нужного места а не с начала то следует при помощи pop() снимать уже обработанные значения из списка , а затем в случае ошибки перезапускать цикл
сделать это можно обернув вашу конструкцию в цикл while который будет следить за тем что в списке еще есть необработанные элементы
Офлайн
2
Блин, и правда, выскочило из головы про использование списка, как стека.
Да не, while тут не нужен:
list_values = list(range(100)) try: for value[0] in list_values: # куча всякого # иногда выскакивают ошибки (разные) del [0] except: # обрабатываем ошибки continue
Офлайн
2
Боже, что я написал. Нужно чаще спать, извините. Вы правы, тут нужен цикл while. Спасибо)
list_values = list(range(100)) try: while bool(list_values): # используем list_values[0] # куча всякого # иногда выскакивают ошибки (разные) del list_values[0] except: # обрабатываем ошибки continue
Отредактировано Razor (Дек. 28, 2013 10:17:06)
Офлайн
568
import random l = [1, 2, 3, 4, 5, 6, 7, 8, 9] lst = iter(l) val = lst.next() while 1: try: print val assert random.randint(0, 1) except Exception: continue try: val = lst.next() except StopIteration: break
Офлайн
32
for t in tasks: try: while True: # do work break # next task except: continue
task = tasks.pop() while task: try: # do work task = tasks.pop() except: # ...
Отредактировано o7412369815963 (Дек. 28, 2013 23:08:25)
Офлайн