Непонятки с игнорированием ошибок



  • Приветствую.
    Ситуация следующая, имеется скрипт на http запросах. Он как функция (со вложенными функциями) полностью находится в игнорировании ошибок. При наступлении ошибки он начинается заново (поднимается по метке).
    Произошла следующая ошибка.

    Не удалось получить страницу https://test.com с помощью ХТТП клиента
    

    Скрипт поднялся по метке, при ошибке он возвращается на старт. Все нормально, вернулся, прошел подключение прокси, затем сделал post запрос к сайту и остановился с ошибкой.

    Поток завершился с сообщением "Не удалось получить страницу https://yandex.ru/internet/ с помощью ХТТП клиента"
    

    Насколько я понимаю ошибки эти у меня потому что интернет то ли на сервере, то ли на прокси сбоит.
    Я не понимаю почему скрипт остановился, а не проигнорировал ошибку. Пробовал сэмулировать ситуацию на ПК, если отключен интернет выводит такую ошибку

    Could not resolve host: test.com
    

    Но сколько бы он не сталкивался в цикле с ошибкой такой, все равно игнорирует.

    Читал форум, не нашел информации близкой к моей ситуации. Буду благодарен за советы.



  • @romanbiz, а метка куда возвращает? В точку до игнора ошибок? Если нет, то попробуй сделать, чтобы после ошибки скрипт заново заходил в секцию игнора ошибок.



  • @romanbiz Скиньте сам скрипт, попробуем воспроизвести вашу ошибку.



  • @Antonio скрипт переносится к метке, которая находится в функции, которая находится в другой функции, которая находится внутри игнорирования ошибок.


  • administrators

    @romanbiz @Antonio сказал правильно, если метка стоит уже внутри экшена игнорировать ошибки, то игнор ошибок не сработает. Вот пример.
    0_1519706593296_на форум28.png



  • @Fox @Antonio понял, большое спасибо за ответы, коллеги!



  • @Fox @Antonio @daemons
    К сожалению, после того как вынес метку над игнорирование ошибок проблема осталась.
    Первый раз ошибку игнорирует, поднимается по метке, но как только ошибка повторяется- уже останавливает скрипт.
    В итоге скрипт работает около суток, за которые ловит две ошибки и останавливается.

    Ошибка

    Поток завершился с сообщением "Не удалось получить страницу https://test.com с помощью ХТТП клиента"
    

    Из-за чего вообще такая ошибка появляется и как ее повторить? Из-за нерабочих прокси? Если я отключаю интернет или использую нерабочий урл ошибка другая и тестовый скрипт с многократными ошибками проходит без проблем, то есть повторить условия наступления неработоспособности не получается.

    Could not resolve host: test.com
    

    Прилагаю скриншоты как выглядит структура скрипта в данный момент. Заранее спасибо за помощь. Скрипт дать не могу по причинам конфиденциальности, могу дать урезанный, но хотелось бы понять самому, для начала как повторить ошибку.
    Общий вид (Main)
    0_1519893723239_ignor1.JPG
    Функция was_error
    0_1519893849782_ignor2.JPG



  • @romanbiz, тогда оберни буквально каждое действие в игнор и сразу после делай по was error вывод в лог last error. Или хотя бы http загрузку сайта оберни отдельно с выводом в лог. Или/и воспользуйся кодом для вывода в лог id всех действий (из темы с лайфхаками). Надо это дело дебажить.

    @romanbiz said in Непонятки с игнорированием ошибок:

    Из-за чего вообще такая ошибка появляется и как ее повторить? Из-за нерабочих прокси?

    Или сервер или прокси не работает. Повторить можно, я думаю, задав урл сайта с нерабочим серваком.



  • @Antonio said in Непонятки с игнорированием ошибок:

    оберни буквально каждое действие в игнор

    @Antonio спасибо за ответ, думал об этом, но хотел обойтись, так как у меня 15 функций в которых по 3-5 post-get обращений в каждом, хочется поэлегантнее чтобы выглядело и читалось.



  • @romanbiz, ну это можно потом убрать - главное понять в чем тут проблема.



  • а когда из функции переходешь на метку после чего вызываешь ту же функцию рекурсии не получается, возможно при возврате по теку вверх проблемы с переменной VAR_WAS_ERROR проблемма, потомушто при возврате состояние не сохраняется. попробуй добавить в лог VAR_WAS_ERROR и посмотреть на ее состояние в разные моменты
    и нет проблем написать main_func которя бы случайно генерировала ошибку, и не помешало бы
    но намто можно



  • что бы быть еще точнее поставить вывод лога после экшена перейти по метке, этот лог когдато выведется вероятно рекурсия есть



  • @ruzne извините, я ничего не понял (



  • @romanbiz said in Непонятки с игнорированием ошибок:

    @ruzne извините, я ничего не понял (

    неудобно как то даже спросить, с понятием рекурсии знакомы?

    Вы из функции wass_error() вызываете функцию wass_error(), я думаю.
    что бы проверить так это или нет, поставьте после в функции wass_error() после экшена перейти по метке какойто еще екшен и посмотрите выполница ли он когда-нибудь.
    я с проблемой рекурсивного вызова в БАС столкнулся до этого и поимел проблемы
    ReferenceError: Can't find variable: IF_ELSE_EXPRESSION



  • и я так понимаю повторить не можете два подряд завершения main_function с ошибкой,
    я думаю, это main_function с одним экшеном в нутри может быть какое-нибуть действие в браузере до его открытия/создания, сто пудов два раза ошибку даст подряд.



  • @ruzne said in Непонятки с игнорированием ошибок:

    что бы быть еще точнее поставить вывод лога после экшена перейти по метке, этот лог когдато выведется вероятно рекурсия есть

    Там отправка ошибки в Телеграм. Если бы была рекурсия, то шел бы спам.



  • @ruzne said in Непонятки с игнорированием ошибок:

    какое-нибуть действие в браузере до его открытия/создания

    Такой скрипт даже не запустится.



  • @Antonio В общем методом тыка понял как повторить ошибку в тестовом скрипте. Ставлю неработающий сайт и таймаут 1 секунду, получается ошибка

    [980002018] [13:36:32] Поток №1 : Не удалось получить страницу https://lentasvrdvrb.ru с помощью ХТТП клиента
    

    Сделал вложенность функций в 4 уровня как у меня в скрипте максимум бывает. Все работает, ошибки игнорируются. Буду думать и тестировать.



  • @Antonio said in Непонятки с игнорированием ошибок:

    @ruzne said in Непонятки с игнорированием ошибок:

    какое-нибуть действие в браузере до его открытия/создания

    Такой скрипт даже не запустится.

    но почему же, если завернуть его в игрнорировать ошибки



  • @ruzne, попробуй.