Discord机器人遇到特定权限类错误时能否不显示报错?
屏蔽Discord机器人特定消息错误
你的思路是可行的,但你写的代码存在语法和逻辑问题,需要调整:
- 首先,
DiscordAPIError是Error对象,不是字符串,不能直接用err.includes,得读取它的message属性或错误代码来判断。 - 原代码缺少括号,语法不合法。
正确实现方式
方式1:通过错误消息文本判断
适合简单场景,但注意文本可能随Discord更新变化:
try { // 执行你的机器人操作(比如删除消息、编辑消息等) } catch (err) { if (err instanceof Error && err.message.startsWith("DiscordAPIError: Unknown Message")) { return; // 跳过该错误,不输出日志 } // 其他错误正常输出 console.error(err); }
方式2:通过错误代码判断(更推荐)
Discord的API错误都有固定代码,Unknown Message对应的代码是10008,用代码判断更稳定:
try { // 执行你的机器人操作 } catch (err) { if (err.code === 10008) { return; } console.error(err); }
如果是在事件监听的错误回调里(比如client.on('error', ...)),写法类似:
client.on('error', (err) => { if (err.code === 10008) return; console.error(err); });
内容的提问来源于stack exchange,提问作者Sans
相关产品推荐
相关产品推荐

