javascript - 为什么我的 try catch 错误没有出现?

标签 javascript html try-catch

我在 JSFiddle 上,出于某种原因,try-catch 错误消息仅在 JS 代码位于 HTML 选项卡中的标记内时显示,但当它位于单独的 JS 选项卡中时,try-catch 错误将不会出现。打印。

这会起作用:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  var message, x;
  message = document.getElementById("p01");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "")  throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5)  throw "too low";
    if(x > 10)   throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

但这不是: https://jsfiddle.net/k0rrupt3d/rqejvzoc/

最佳答案

fiddle 上的 JS 部分似乎是局部范围的。如果您将函数声明更改为 window.myFunction = function() { 以使其成为全局函数,它将按预期运行。

关于javascript - 为什么我的 try catch 错误没有出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54011979/

相关文章:

javascript - 警报事件有效,但我的单击更改颜色的 javascript 函数不起作用

javascript - NodeJS 中的 POST 调用后 HTML 页面不会改变

c++ - 从构造函数中捕获异常意味着我的实例之后超出了范围

javascript - Rails Ajax 在保留参数的同时刷新部分内容

javascript - jquery展开表不是以隐藏方式开始

javascript - 为什么在 Chrome 上有效的合法 cors 请求在 FireFox 上会失败?

C++ 在 try-catch 语句处崩溃

javascript - 使用 php 和 mysql 定期检测数据库中的变化

javascript - 如何停止在移动设备上滚动完整日历?

android - 如何处理 imageView.setImageURI(Uri.parse(local_path)); 的 try-catch 子句