我有一个功能,其中it sonar报告它不一致地使用return:
function getRate(a) {
try {
const manager = rateManagement.getInstance();
const rate = await manager.getAllRate();
let result = 0;
if (rate && rate.length) {
const rateConfig = rate.find((x) => x.rate?.includes(a));
const aRating = rateConfig?.rate;
result = aRating || result;
}
return result;
} catch (error) {
logger.logError(error);
}
}
但是,使用此功能时,sonar没有检测到它不一致地使用返回,即使我也没有返回if中的任何内容:
getGroup() {
const manager = groupManagement.getInstance();
const group = await manager.getAllGroup();
let result = [];
if (group && group.length) {
result = group.map((x) => x.rate);
}
return result;
}
是不是因为试抓块的缘故?你能解释一下为什么吗?
1条答案
按热度按时间mpbci0fu1#
作用
getRate
如果在try块内抛出错误,则不返回值,因为catch块只记录错误,而不返回值。您可以通过返回一些值来“修复”此问题,例如。,undefined
. 但是,抛出错误并让调用者处理通常更有意义。