2016-11-07 1 views
0

나는이를 잡은되지 않은 : 나는 의도적으로 handler 콜백 내에서 던져푸른 DocumentDB 저장 프로 시저 예외가 내 DocumentDB 저장된 프로 시저에

function mySproc(doc) { 
    let context = getContext(); 
    let collection = context.getCollection(); 
    let collectionLink = collection.getSelfLink(); 

    try { 
     if (!collection.createDocument(collectionLink, doc, handler)) 
      return; 
     numCreated++; 
    } catch (e) { 
     // Never happens. 
    } 
} 

불행하게도, 그것은 catch 블록에서 잡은되지 않습니다. 결국 전체 저장된 proc 실행이 중지됩니다. 그게 예상되는가요? 콜백이 일종의 자체 범위를 가지고 있습니까?

답변

0

자바 스크립트와 같은 비동기 환경에서 일반적으로 오류 제어는 첫 번째 매개 변수를 통해 콜백 (전문 용어로 처리기)으로 전달됩니다. 처리기 내에서 throw하면 완전히 종료되고 오류 패키지가 클라이언트에 반환됩니다. 그것은 당신의 catch 블록을 결코 보지 못합니다.

도움이 더 필요하면 처리기를 보여주세요.