您如何在 discord.js 的计时器代码中捕获错误?
How do you catch an error in this timer code for discord.js?
我正在 javascript 中制作一个不和谐的机器人,我正在努力做到这一点,以便当有人输入无效的时间时,它会告诉你有错误,而不是使机器人崩溃。
我已经研究了一段时间,但找不到如何阻止它使机器人崩溃的答案,只能用类似“那不是有效号码”之类的方式回复。有人可以帮助我吗?
client.on('message', message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch (args[0]) {
case 'timer':
let time = (args[1]);
if (!time) {
return message.reply("You didnt specify a time!");
}
message.reply(`Timer started for ${ms(ms(time))}`)
setTimeout(function() {
message.reply(`your timer has stopped`)
}, ms(time));
break;
}
});
是NaN()
isNaN 是一个 JavaScript 函数,它 returns 一个布尔值,用于确定给定输入是否为数字。它代表 不是数字 。
几个例子:
isNaN(8); // Expected outcome 'false' since 8 is a number
isNaN('hello!'); // Expected outcome 'true' since 'hello!' is not a number.
// It also works for numbers inside of a string:
isNaN('23'); // Expected outcome 'false' since 23 is a number.
您可以阅读有关 isNaN() 的更多信息here
在您的代码中
根据这个逻辑,我们可以通过检查第二个参数是否为数字来将其用于您的代码 => 在这种情况下,变量 'time':
if (isNaN(time)) return message.reply('Please enter a number!');
您可以使用
if(isNaN(time)) return message.reply("That is not a valid number.")
isNaN()
returns true
用于“非数字”值,这应该正是您所需要的,您可以阅读更多相关信息 here.
我正在 javascript 中制作一个不和谐的机器人,我正在努力做到这一点,以便当有人输入无效的时间时,它会告诉你有错误,而不是使机器人崩溃。
我已经研究了一段时间,但找不到如何阻止它使机器人崩溃的答案,只能用类似“那不是有效号码”之类的方式回复。有人可以帮助我吗?
client.on('message', message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch (args[0]) {
case 'timer':
let time = (args[1]);
if (!time) {
return message.reply("You didnt specify a time!");
}
message.reply(`Timer started for ${ms(ms(time))}`)
setTimeout(function() {
message.reply(`your timer has stopped`)
}, ms(time));
break;
}
});
是NaN()
isNaN 是一个 JavaScript 函数,它 returns 一个布尔值,用于确定给定输入是否为数字。它代表 不是数字 。 几个例子:
isNaN(8); // Expected outcome 'false' since 8 is a number
isNaN('hello!'); // Expected outcome 'true' since 'hello!' is not a number.
// It also works for numbers inside of a string:
isNaN('23'); // Expected outcome 'false' since 23 is a number.
您可以阅读有关 isNaN() 的更多信息here
在您的代码中
根据这个逻辑,我们可以通过检查第二个参数是否为数字来将其用于您的代码 => 在这种情况下,变量 'time':
if (isNaN(time)) return message.reply('Please enter a number!');
您可以使用
if(isNaN(time)) return message.reply("That is not a valid number.")
isNaN()
returns true
用于“非数字”值,这应该正是您所需要的,您可以阅读更多相关信息 here.