首页 > 解决方案 > 如何定义产生错误后要响应的消息?

问题描述

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

到目前为止,当我运行我的代码时,我收到一个错误,特别是 UnHandledPromiseRejection 错误,指出未定义“消息”。代码在我的 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")
}
    }

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

我想我可能做错了,所以如果我是,请纠正我。另外,请注意所有命令都在 async 函数中。谢谢!

标签: javascriptnode.jsdiscord.js

解决方案


您有正确的想法将错误事件侦听器附加到您的 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));

推荐阅读