为什么这个while语句不能在catch块中工作

时间:2017-01-27 00:09:41

标签: javascript while-loop try-catch-finally

我有一个带有脚本标记的简单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;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

age>0|| age<120始终为true,因此您始终将state设置为false并在一次迭代后退出循环。

对于那个条件,您应该使用&&而不是||,然后只有大于0 小于120的数字才会出现。