如何定义发生错误后我要响应的消息?

How do I define the message I want to respond to after an error is produced?

现在,我正在尝试创建一个小型系统,用于检测和响应因不正确的命令使用而产生的错误。但是,我无法定义导致错误的消息。我需要做什么才能正确定义导致系统检测到错误的消息?或者,如果我完全做错了,完成这项任务的正确方法是什么?

到目前为止,当我 运行 我的代码出现错误时,特别是 UnHandledPromiseRejection 错误,指出 'message' 未定义。代码在我的 index.js 文件中,命令在与我的 index.js 文件相同的目录中的单独文件夹中。我尝试了多种尝试定义消息的方法。我已将这段代码移动到不同的位置,甚至尝试将 if 语句放入其中,并将其插入所有命令中。

这是我 index.js 文件中的代码。

bot.on('error', () => {
        console.log(error);
        message.reply("error message here")
    }

这是我在所有命令文件中的代码。

if(error) {
console.log(error);
message.reply("error message here")
}
    }

我的预期结果是让代码检测到错误,将其打印到控制台,并向使用该命令的频道发送消息,通过回复来标记发送它的用户。一旦我现在整理出这个基本版本,这个消息最终会变得丰富。

不过我想我可能做错了,所以请纠正我。另请注意,所有命令都在异步函数内。谢谢!

您将错误事件侦听器附加到您的 Discord 客户端的想法是正确的,但是当您遇到错误时您没有发出它。这样做时,您还需要将消息作为参数传递。

/* index.js */
bot.on('error', (err, message) => {
  console.error();
  message.reply('❌ Uh oh! I ran into an error.');
});
/* commandname.js */
message.reply('if this promise is rejected, we catch it below and emit our error event')
.catch(err => bot.emit('error', err, message));