@gr34ka said in Обработчик ошибок:
Как сделать так, чтобы при любой ошибке в логе, например: сохранялся логин с паролем в определённый ресурс?
Поместите все действия в функцию, а вызов функции оберните в игнор ошибок
Такой код (прототип):
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
я все сделаю Завас
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 во внутреннем блоке игнорировать ошибку не приведет к следующей интерации цикла а выйдет из блока игнорировать ошибок этажом выше, проверять я это конечно не буду...