首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中发现错误?

如何在node.js中发现错误?
EN

Stack Overflow用户
提问于 2022-11-01 11:46:27
回答 2查看 71关注 0票数 -1

如何在node.js中捕获错误?

这是我的密码:

代码语言:javascript
复制
const { Client, Message, MessageEmbed } = require("discord.js")
const translate = require('@iamtraction/google-translate')
module.exports = {
  name: "ترجم",
  description: `يترجم اللغه فقط أستعمل !translate "الكلمه/الجمله يلي بدك تترجمها"`,
  aliases: ['translate'],
  run: async (client, message, args) => {
    const query = args.join(" ")
    const lang = args[0]
    if(!query) return message.reply('Please specify a text to translate');
    const translated = await translate(query, { to: lang });
    message.reply(translated.text);
  },
};

当我输入聊天时,它会工作:

!translate ar hello

但当我打字时:

!translate "not a real lang" hello

它因错误而关闭:

Error: The language 'not a real lang' is not supported

我尝试了.catch,我尝试了如果,否则,我尝试了try

EN

回答 2

Stack Overflow用户

发布于 2022-11-01 11:58:40

只有在没有发生错误时,async函数才返回值。如果出了问题,就会抛出错误,必须抓住它。

您使用await关键字调用错误的异步函数,因此必须用如下所示的try { } catch (e) {}块包围该函数:

代码语言:javascript
复制
try {
   const translated = await translate(query, { to: lang });
   message.reply(translated.text);
} catch (e) {
   message.reply('Translation failed: ' + e.message);
}

由于您处理了另一个可能的错误-上面的一行-您可以将整个事件包装成一个try-catch块,并以统一的方式处理所有类型的错误:

代码语言:javascript
复制
const { Client, Message, MessageEmbed } = require("discord.js")
const translate = require('@iamtraction/google-translate')
module.exports = {
  name: "ترجم",
  description: `يترجم اللغه فقط أستعمل !translate "الكلمه/الجمله يلي بدك تترجمها"`,
  aliases: ['translate'],
  run: async (client, message, args) => {
    try {
      const query = args.join(" ")
      const lang = args[0]
      if(!query) throw new Error('Please specify a text to translate');
      const translated = await translate(query, { to: lang });
      message.reply(translated.text);
    } catch (e) {
      if (message) {
        message.reply('Translation failed: ' + e.message);
      }
    }
  },
};

这样,您将得到有意义的答复在任何情况下(只要你有一个有效的消息)。例如,也许args不是一个数组。

票数 2
EN

Stack Overflow用户

发布于 2022-11-01 16:23:30

要捕获node.js中的错误,通常可以这样做:

代码语言:javascript
复制
try {
  // your code here
} catch (error){
  console.error(error);
  //your error response code here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74275425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档