为了账号安全,请及时绑定邮箱和手机立即绑定

从以func为参数的func中获取异常

从以func为参数的func中获取异常

慕容3067478 2021-05-17 16:37:14
我有一个函数a接受一个函数func作为参数并返回一个新函数如何捕获函数a中的函数引发的错误,因为当函数返回异常时,我想从函数a返回null。在下面的情况下
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

返回一个新函数,该函数调用func包装在中的try..catch,并记住该函数之前是否有错误:


const a = func => {

    let hasThrown = false;


    return function () {

        if (hasThrown) {

            return null;

        }


        try {

            return func(...arguments);

        } catch (e) {

            console.error(e);

            hasThrown = true;

            return null;

        }

    };

};

const a = func => {

  let hasThrown = false;


  return function() {

    if (hasThrown) {

      return null;

    }

   

    try {

      return func(...arguments);

    } catch (e) {

      console.error(e);

      hasThrown = true;

      return null;

    }

  };

};


const getMyName = (name) => {

  if (name === "jos") {

    throw new Error(`${name} is wrong`);

  }

  return `${name} is yummy`;

};


const getName = a(getMyName);

console.log(getName("harry"));

console.log(getName("garry"));

console.log(getName("jos"));

console.log(getName("jon"));


查看完整回答
反对 回复 2021-05-27
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

你可以围绕getCount()内部try和catch


try {

    getCount()

catch(e){

    console.log(e)

}


查看完整回答
反对 回复 2021-05-27
  • 2 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信