Отладка и обработка ошибок
При написании шаблонов бывают ситуации, когда что-то идет не так, как задумано. Что бы разобраться в проблеме и отладить код, окружение предлагает несколько инструментов.
print(string) — метод выводит произвольную строку в Output.
errorMessages — Специальный массив строк, в котором содержатся все ошибки, возникшие в процессе выполнения шаблона. Все ошибки будут в логе выполнения шаблона (UpLog) и в Output.
errorMessages.Add(ex) — метод, добавляющий новую ошибку в массив ошибок.
Для обработки исключений:
try{
// если тут случится ошибка
// например, деление на 0 или затруднения
// при получении страницы по url...
}catch(ex){
// начнется исполнение этого блока кода
}finally{
// код из этого блока будет выполнен
// в любом случае (неважно, произошло исключение или нет)
}
Пример шаблона статьи:
// если при обработке статьи возникнет ошибка в блоке try...
try{
var d = new Document(article.url, channel.encoding);
var el = d.getElementsByAttr("div", "class" , "node")[0].childNodes;
// посмотрим, сколько потомков у найденного элемента...
print(el.length);
article.body = el[1].innerHTML;
// ...эта ошибка будет обработана в блоке catch, и обновление канала не прервется
}catch(ex){
errorMessages.Add(ex);
}