Какправильно понять логику обработки ошибок?
-
Такой код (прототип):
while получить элемент ................ ................ игнорировать ошибки загрузить ................. игнорировать ошибки двигать мышь и кликнуть на элемент лог ТЕКСТ_1 if == 'was error' лог ТЕКСТ_2 continue if == 'was error' лог ТЕКСТ_2 continue
У меня вопрос такой. При обработке ошибок есть необходимость писать внутренний блок if, или же достаточно внешнего if при условии, что в логе после if текст будет одинаковый? Другими словами, я в любом случае перейду на внешний if из внутреннего игнорировать ошибки или нет?
Условие: ошибка возникла во внутреннем игнорировать ошибки.
-
@hubble while я так понимаю с параметром
true
?
Не совсем понятно где заканчиваются блоки внутри игнора ошибок. Так как при ошибке на каком либо экшене внутри блока игнорировать ошибки следующие экшены не будут выполнятся.И что означает:
.................
?
-
Да, while True
Многоточие означает одна или несколько произвольных строк (не видел смысла их писать).
Я специально сделал отступы, чтобы визуально отделить все блоки. В коде один блок игнорировать ошибки вложен в другой блок игнорировать ошибки. В первом блоке проверяю загружается/не загружается страница. Обрабатываю. Во втором проверяю нажатие кнопки. И там после нажатия тоже может возникнуть неприятность - не откроется страница или откроется с ошибкой. Тоже обрабатываю. Так вот, если страница открылась, а при нажатии кнопки сгенерировалась (внутренняя игнорировать ошибки) ошибка, достаточно будет иметь одного - внешнего if или же из внутреннего блока программа никак не попадет на внешний if? И тогда без внутреннего if никак.
-
@hubble Честно? В разы быстрее было бы сделать тестовый скрипт и закинуть его сюда. Сразу бы получили ответ\совет\комментарий.
-
@hubble
я все сделаю Завасwhile(1){ ignor( //внешний болк\блок1 loadPage(url); ignor( //внутренний болк\блок2 moveAndClick; );if(was_error){log(errorText2); succes();}//or fail() || continue );if(was_error){log(errorText1); succes();} }
переменная вас_error генерируется после каждый раз как закончится блок игнорировать ошибку, варианты:
Первый: как тут, будет только одна запись в лог или или, потому как так, если возникает любая ошибка хоть внутри и снаружи происходит континуе, сусес или еще какой брейк, все что далее вероятно не должно выполнится,
Второй вариант: нет succes(), будет только одна запись в лог или или, потому как так,
если ошибка в загрузке страницы, то до внутреннего блока игнорировать ошибки дело не дойдет,
если во внутреннем при кликах или еще чем, то ошибка обработана и никаких причин генерировать Вас_error = true у внешнего блока игнорировать ошибки не будет. Всякие остальные поведения можно попридумывать и самим.если всетаки continue. Высоко вероятно, что continue во внутреннем блоке игнорировать ошибку не приведет к следующей интерации цикла а выйдет из блока игнорировать ошибок этажом выше, проверять я это конечно не буду...
-
Спасибо ВСЕМ.
Понятно. Разобрался