0
Я пытаюсь перезапустить цикл try-except каждый раз, когда есть ошибка, и только прерывается, когда нет ошибки.Python: Rerun try-except loop
loop = True;
while loop == True:
try:
for i in data_names:
#do something
except Exception, e:
e = str(e)[0:100];
parse_error_list.append(str(e)[str(e).rindex(':')+2:str(e).rindex(':')+4]);
if len(e) == 0:
loop = False;
В качестве проверки вменяемости, будет следующее позволит мне выйти из цикла, если и только если нет ошибок?
EDIT: Ответ? Если да, то это наиболее эффективная реализация? ...
loop = True;
while loop:
try:
for i in data_names:
#do something
except Exception, e:
e = str(e)[0:100];
parse_error_list.append(str(e)[str(e).rindex(':')+2:str(e).rindex(':')+4]);
if e:
loop = False;
Углубление, кажется, перепутались. Можете ли вы исправить отступы в коде. –
Единственное условие прерывания, которое я вижу, - это строковое представление вашего исключения 0-length; т. е. никогда. Также использование * actual * 'break' является гораздо более простым способом выйти из цикла, чем указать переменную, чтобы сделать это для вас. – roippi
Как показано ниже? try: для i in data_names: #do что-то за исключением исключения, e: e = str (e) [0: 100]; parse_error_list.append (str (e) [str (e) .rindex (':') + 2: str (e) .rindex (':') + 4]); break; Почему len (e) == 0 для ошибки не прерывает цикл? – Black