Как узнать где произошла ошибка, вывод информации об ошибке.

malexoid

A-Parser Enterprise License
A-Parser Enterprise
Столкнулся с такой проблемой, что при ошибке в коде, результат не возвращается и сообщение об ошибке не выводится и нигде не логируется и узнать, что где-то произошла ошибка, можно только случайно.

Например, при работе парсера linkExtractor при определенных обстоятельства возникает ошибка в коде result format, об этой ошибке нигде не сообщается, узнал о ней случайно не найдя нужных данных в результате работы.

Собственно вопрос: что делать? а если код сложный и его много? и парсеров несколько?
 
В А-Парсере есть три инструмента для отладки и тестирования: Тестирование шаблонов, Тестовый парсинг и Тест задания. Пользуйтесь ими для составления правильных шаблонов и заданий.
Кроме этого, многое зависит от вашего задания и требований к результату. Как вариант, используйте IF...ELSE...END для проверки полученного результата и вывода результата.
 
Например, при работе парсера linkExtractor при определенных обстоятельства возникает ошибка в коде result format, об этой ошибке нигде не сообщается, узнал о ней случайно не найдя нужных данных в результате работы.

Собственно вопрос: что делать? а если код сложный и его много? и парсеров несколько?

приведи конкретный пример, вообще множество ошибок в настройках отслеживаются при добавлении и при старте задания
 
приведи конкретный пример, вообще множество ошибок в настройках отслеживаются при добавлении и при старте задания
зашел сюда http://a-parser.com/threads/1711/#post-5170
взял код для импорта, посмотрел, запустил. Вроде работает.
но как потом оказалась в карту сайта не попадают урлы для которых сервер возвращает last modified time. Выяснилось, что участок кода
Код:
[% USE date;calc = date.calc;Dd = calc.Delta_Days(lmYear,m,lmDay, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %][% IF Dd == 0 %]hourly[% END %][% IF Dd == 1 %]daily[% END %][% IF Dd > 1 and Dd < 30 %]weekly[% END %][% IF Dd >= 30 and Dd < 365 %]monthly[% END %][% IF Dd >= 365 %]yearly[% END %]</changefreq>[% END %]
не выполняется, т.к у меня нет calc
The calc() method can be used to create an interface to the Date::Calcmodule (if installed on your system).

хорошо бы в интерфейсе выводить сообщение об ошибке
 
Назад
Верх