【问题标题】:Discord.js use try catch statement to handle api errorDiscord.js 使用 try catch 语句处理 api 错误
【发布时间】:2022-01-24 17:23:26
【问题描述】:

您好,我目前正在尝试使用 try catch 语句捕获不和谐的 api 错误

但是由于某种原因这不起作用,我的应用程序仍然停止执行并给我以下消息

 There was an uncaught error DiscordAPIError: Cannot send messages to this user // Example

如何使用 try 和 catch 块捕获 api 错误并且在调用函数后无法使用 .catch 表达式

这是我的代码

try {
    interaction.user.send("Remember")
}
catch(DiscordAPIError) {
    console.log("Oh no")
}

【问题讨论】:

  • 是否有堆栈跟踪告诉您哪个函数调用导致了错误? try catch 看起来不错,但是您要命名参数错误,而不是 DiscordAPIError
  • 是的,跟踪告诉我,interaction.user.send 函数导致了错误。

标签: javascript discord.js


【解决方案1】:

如果你想使用同步的 try/catch 块,你需要把它放在一个 async 函数中,并等待来自interaction.user.send 的承诺:

await interaction.user.send("Remember")

【讨论】:

  • 您好,感谢您的帮助,但是当我尝试添加 await 语句时,出现以下错误“SyntaxError:await 仅在异步函数和模块的顶层主体中有效”
  • @yyn79436 启用异步,在开头使用 async function [functionname]() {(将 [functionname] 替换为函数名称),然后在末尾使用 } [functionname]();
  • 是的,您需要将其放入 async function - 确保阅读 async/await 和 promises
猜你喜欢
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多