我希望机器人接收/dm命令,然后将DM发送给特定的人。目标是targetid,而DM内容是letter。该命令本身有效-捕获错误无效。如果我使targetid类似于267或任何其他不可能的targetid,则不会将错误输出为新消息。

try {
    client.users.fetch(targetid).then((user) => {user.send(letter);})
    message.react("✅")
} catch (err) {
    message.channel.send("❗ Something went wrong! Refer to the error log below.\n\n ``" + err + "``\n(Bot administrator contacted: <@...>)") //Removed my ID
    message.react("❌")
}

最佳答案

我建议使用Promise#catch()而不是正常的try/catch,因为这是fetch()返回的内容:

client.users
    .fetch(targetid)
    .then(user => {
        user.send(letter)
        message.react('✅')
    })
    .catch(err => {
        message.channel.send('❗ Something went wrong! Refer to the error log below.\n\n ``' + err + '``\n(Bot administrator contacted: <@...>)') //Removed my ID
        message.react('❌')
    })


您可以阅读有关它的更多信息here

10-07 14:07
查看更多