为什么这个 while 语句在 catch 块中不起作用
Why isn't this while statement not working in the catch block
我有一个带有脚本标记的简单 HTML 文档,我正在尝试使用 try catch,但无法使 catch 块中的 while 语句起作用。 try 和 catch 只是简单地运行,就好像 while 块不存在一样。
try {
let age = prompt("age?")
if (age <= 0 || age >= 120) {
throw new Error("Something Happened!")
}
} catch (e) {
let state = true;
while (state) {
age = prompt("age?");
if (age > 0 || age < 120) {
state = false;
}
}
}
age>0|| age<120
始终为真,因此您总是将 state
设置为 false
并在一次迭代后退出循环。
对于该条件,您应该使用 &&
而不是 ||
,那么它只适用于大于 0 和小于 的数字超过 120.
我有一个带有脚本标记的简单 HTML 文档,我正在尝试使用 try catch,但无法使 catch 块中的 while 语句起作用。 try 和 catch 只是简单地运行,就好像 while 块不存在一样。
try {
let age = prompt("age?")
if (age <= 0 || age >= 120) {
throw new Error("Something Happened!")
}
} catch (e) {
let state = true;
while (state) {
age = prompt("age?");
if (age > 0 || age < 120) {
state = false;
}
}
}
age>0|| age<120
始终为真,因此您总是将 state
设置为 false
并在一次迭代后退出循环。
对于该条件,您应该使用 &&
而不是 ||
,那么它只适用于大于 0 和小于 的数字超过 120.