Карта не попадает в стек навигации, почему бы и нет? Есть ли предел?
В стеке находится одна корневая карта и еще одна. Я делаю проверку данных. Если в раскрывающемся списке не выбрано значение файла, это обработчик ошибок для создания новой карты ошибок. Исходная функция выдает ошибку, а catch вызывает мой обработчик ошибок. Когда ошибка вызвана, это ничего не делает, но регистрирует сообщение об ошибке. Кажется, создается новая карта в стенограмме выполнения, заголовке и разделе, однако она не отображается. Я не вижу ошибки в расшифровке стенограммы. Все удается, но новой карты нет.
function error(e){
try{
// create new card, header, and section
var header = CardService.newCardHeader().setTitle('Error')
.setImageUrl('http://www.pvhc.net/img55/waclmgwigxuizcqbxjdx.jpg')
.setImageStyle(CardService.ImageStyle.SQUARE);
var section = CardService.newCardSection()
.setHeader('<b>Error Message:</b>')
.addWidget(CardService.newTextParagraph().setText(e));
var card = CardService.newCardBuilder()
.setHeader(header).addSection(section).build();
// Create Nav object
var nav = CardService.newNavigation().pushCard(card);
// Check if my function is being called and the error message is correct.
Logger.log(e);
// push card onto stack.
return CardService.newActionResponseBuilder().setNavigation(nav);
}catch(e){Logger.log(e.message);}
}
Обновление: в моем операторе catch у меня не было оператора return до вызова функции error. Теперь я получаю ошибку во время выполнения: "Отсутствуют обязательные поля в разметке:". Не уверен почему.
2 ответа
Хотя я изначально не включал 'return' при вызове моего обработчика ошибок, я также не создавал построитель ответов действий при его возврате.
Исходное утверждение: return CardService.newActionResponseBuilder (). SetNavigation(nav);
Исправление: return CardService.newActionResponseBuilder (). SetNavigation(nav).build ();
Это сейчас работает.
Не забудьте построить Карту! Вы должны построить карту.
return CardService.newActionResponseBuilder().setNavigation(nav).build();