0

堆叠中有一张根牌和一张其他牌。我正在做数据验证。如果下拉框中没有选择文件值,则这是创建新错误卡的错误处理程序。原始函数抛出一个错误,并且 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 语句中,在调用错误函数之前我没有返回语句。现在我收到一个运行时错误:'Missing required fields in markup:'。不知道为什么。

4

2 回答 2

5

不要忘记建立卡片!你必须建立卡。

return CardService.newActionResponseBuilder().setNavigation(nav).build();
于 2017-12-08T02:40:24.167 回答
3

虽然我最初在调用错误处理程序时没有包含“返回”,但在返回时我也没有构建动作响应构建器。

原语句: return CardService.newActionResponseBuilder().setNavigation(nav);

更正: 返回 CardService.newActionResponseBuilder().setNavigation(nav) .build ()

这现在有效。

于 2017-11-30T01:51:25.040 回答