Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
try…catch在JavaScript中不起作用(Discord.js)_Javascript_Discord.js_Try Catch - Fatal编程技术网

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
    }
};