gpt4 book ai didi

javascript - NodeJS软件包: error handling

转载 作者:行者123 更新时间:2023-12-03 08:49:26 26 4
gpt4 key购买 nike

我有一些使用Overwatch API捕获某些数据的代码。这是我目前拥有的:

OWoverallStats: (playerName, mode, region) => {
mode = (typeof mode === 'undefined') ? 'competitive' : mode.toLowerCase();
region = (typeof region === 'undefined') ? 'us' : region.toLowerCase();

playerName = playerName.replace('#', '-');

return fetch(`https://owapi.net/api/v3/u/${playerName}/stats`)
.then(res => res.json())
.then(data => {
return data[region].stats[mode].overall_stats;
});
}

只要您输入实际存在的playerName,它就可以正常工作。我用来测试的代码是:
core.OWoverallStats('Calvin-1337', 'quickplay', 'eu').then(data => {
console.log(data.tier) // grandmaster
}).catch(e => {
console.log(e);
});

在实际的代码中,我可以检查错误代码是否为404(玩家不存在),但是我不知道该怎么办。我不想抛出错误,也不想控制台将其记录下来,就像有人在Discord Bot中实现了这个说法一样,我希望使用代码的人说出他们想对错误做些什么。

最佳答案

当获取具有响应时,如果状态为404,则仅引发错误。然后,代码的调用者可以捕获它并按自己喜欢的方式进行处理。

例如,您的代码:

return fetch(`https://owapi.net/api/v3/u/${playerName}/stats`)
.then((res, meta) => {if (meta.status ===404) throw new Error('NoPlayer')})

您的代码的调用者:
core.OWoverallStats('Calvin-1337', 'quickplay', 'eu').then(data => {
}).catch(e => {
//this is where he can handle the error flexibly
});

您可能会看到 other error handling practices here

关于javascript - NodeJS软件包: error handling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com