Отладка и обработка ошибок



При написании шаблонов бывают ситуации, когда что-то идет не так, как задумано. Что бы разобраться в проблеме и отладить код, окружение предлагает несколько инструментов.

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);
}