2017-11-30 17 views
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 문에서 나는 오류 함수를 호출하기 전에 return 문이 없었다. 이제 런타임 오류가 발생합니다 : '마크 업에 필수 필드가 누락되었습니다 :'. 이유를 모르겠다.

답변

2

원래 오류 처리기를 호출 할 때 '반환'을 포함하지 않았지만 반환 할 때 작업 응답 작성기를 작성하지 않았습니다.

원래 문 :. 반환 CardService.newActionResponseBuilder() setNavigation (NAV); .

정정 : 복귀 CardService.newActionResponseBuilder() setNavigation (NAV) .build();

이제 작동합니다.

4

카드를 만드는 것을 잊지 마십시오!. 카드를 만들어야합니다.

return CardService.newActionResponseBuilder().setNavigation(nav).build();