我有一个函数a接受函数func
作为参数并返回一个新函数
如何捕获函数a中的函数引发的错误,因为当函数返回异常时,我想从函数a返回null。在以下情况下也是如此
答案 0 :(得分:4)
返回一个新函数,该函数调用包裹在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"));
答案 1 :(得分:0)
您可以将getCount()
和try
内的catch
包围
try {
getCount()
}
catch(e){
console.log(e)
}