スタックにルートカードと他のカードが1枚あります。私はデータ検証をしています。ドロップダウンボックスにファイル値が選択されていない場合は、これがエラーハンドラで、新しいエラーカードを作成します。元の関数はエラーをスローし、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文を持っていませんでした。今私はランタイムエラーが表示されます:'マークアップの必須フィールドがありません:'。理由は分かりません。