Как отловить ошибку, используя try и catch для нескольких функций? - PullRequest
0 голосов
/ 03 января 2019

Я попробовал функцию catch, просто хотел понять сценарий ошибки, моя вторая функция зависит от первой. так что, если первая функция завершится неудачно, catch вернет ошибку, но если вторая функция потерпит неудачу, я хочу использовать тот же самый catch для выброса ошибки, это не происходит с приведенным ниже кодом, могу ли я реализовать эту логику или мне нужно реализовать две отдельные попытки try и catch?

main.js

try {

    //1st function 
    specialtyRefillsCache = await new CacheUtility().refillsCache(request.uniqueRxIds)
    const rxInfosArray = specialtyRefillsCache.map((rxInfo: any) => {
        return this.mapSpecialtyRequest(rxInfo);
    });
    if (rxInfosArray.length > 0) {
        const tokenID = request.body.tokenID;
        // 2nd function
        const specialtyMembersInfoCache =
            await new CacheUtility().MemberInfoCache(tokenID);
        this.rxInfos = rxInfosArray;
    }

} catch (e) {
    return this.errorHandler(request, 'no patient info for given HBS ID');
}

1 Ответ

0 голосов
/ 03 января 2019

простой случай, который, я надеюсь, представляет вашу проблему

function f1(num){
    if(num > 6){
        return 10;
    } 
    else{
        throw new Error("Error from 1st function");
    }
}

function f2(){
   throw new Error("I am an error from 2nd function");
}

function junk(){
    try {
      var a=f1(7);
      if(a === 10){
         f2();
      }

     } catch(e){
         console.log(e);
     } 
}     
...