为什么这个 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.