try…catch在JavaScript中不起作用(Discord.js)
我正在开发一个机器人来获取用户的头像,我使用try…catch在JavaScript中不起作用(Discord.js),javascript,discord.js,try-catch,Javascript,Discord.js,Try Catch,我正在开发一个机器人来获取用户的头像,我使用try…catch来检测用户提及,但它仍然会抛出一个错误 我尝试了一个简单的try…catch,它抛出了一个错误SyntaxError:Identifier'x'已经声明了: 试试看{ 设x=1; 设x=2;//变量已声明 }捕获(e){ 控制台日志(e) } 这是我的密码: //通过提及获得头像 试一试{ client.users.fetch(msg.content.substr(prefix.length+6,msg.content.length
try…catch
来检测用户提及,但它仍然会抛出一个错误
我尝试了一个简单的try…catch
,它抛出了一个错误SyntaxError:Identifier'x'已经声明了
:
试试看{
设x=1;
设x=2;//变量已声明
}捕获(e){
控制台日志(e)
}
这是我的密码:
//通过提及获得头像
试一试{
client.users.fetch(msg.content.substr(prefix.length+6,msg.content.length-prefix.length-7)),然后(result=>{
阿凡达
.setTitle(${msg.author.tag}的化身)
.setImage(result.avatarURL({dynamic:true}));
msg.channel.send(嵌入.avatar);
});
}捕获(e){
//无效的用户id
日志控制台('commandInvalidParam',消息);
if(msg.content.length对于简单的try…catch,您已经在代码中声明了x
变量。没有两个变量可以被命名为相同的东西,因此它会给您一个语法错误。如果您想更改x
的值,只需执行x=2
对于您的代码,它在fetch方法中找不到用户ID。这可能是因为前缀的长度不正确,或者substr方法没有获取方法内容的正确部分。无论哪种方式,您都应该尝试使用该子字符串声明一个变量,然后console.log
ing该变量。因此,下面是一个示例一个userinfo命令应该是什么样子的。我很快用一个安装了discord.js的index.js文件实现了这一点
代码:
语法错误发生在代码运行之前。try…catch
用于运行时错误。您可以使用message.indications.users.first()
或通过message.indications.users.first().avatarURL({dynamic:true})来获取化身,而不是试图通过切碎消息内容来找出提到的用户
。注意:这是一个命令文件,不是实际的index.js。
module.exports = {
name: 'userinfo',
description: 'Get info on a user',
execute(message, client) {
const split = message.content.split(/ +/);
const args = split.slice(1);
const user = getUserFromMention(args[0], client);
message.channel.send(`Name: ${user.username}, ID: ${user.id}, Avatar: ${user.displayAvatarURL({ dynamic: true })}`);
// Other possible information
// USER OBJECTS @ discord.js
// ${user.id} ${user.username} ${user.discriminator}(AKA THE LAST 4 NUMBERS OF A DISCORD USERS ACCOUNT) ${user.bot?} ${user.system?} ${user.mfa_enabled}
// ${user.locale?} ${user.verified?} ${user.email?} ${user.flags?} ${user.public_flags} ${user.premium}
// src https://discord.com/developers/docs/resources/user#get-user
}
};