javascript - 为什么在调用缺少的函数时会捕获错误,而不是在错误的语句上捕获错误?

标签 javascript

请看这段代码:

<!DOCTYPE html>
<html>
<body>

<p id="P1"></p>

<script>
try {
    alllllllert("Hello.........!");
}
catch(err) {
    document.getElementById("P1").innerHTML = err.message;
}
</script>

</body>
</html>

当这段代码运行时出现错误,我进入了 catch block 。

但是,为什么在下面的代码中没有发生这种情况:

<!DOCTYPE html>
<html>
<body>

<p id="P1"></p>

<script>
try {
    int n = 3;
    document.getElementById("P1").innerHTML = n;

}
catch(err) {
    document.getElementById("P1").innerHTML = err.message;

}
</script>

</body>
</html>

写 int n = 3 不能在 JavaScript 上编译,我知道我需要写 var n =3。那么,为什么我没有收到消息异常?

最佳答案

int n = 3;是无效的语法,这会阻止您的整个 <script>阻止被解析。

因此,您的 catch block 实际上并不存在。

关于javascript - 为什么在调用缺少的函数时会捕获错误,而不是在错误的语句上捕获错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222339/

相关文章:

javascript - 使用内嵌在javascript函数中

javascript - 遍历 jQuery 中的对象数组并匹配属性

javascript - 带有 SemanticUI 的 React-route-dom NavLink 不工作

javascript - 如果对象值在数组中是唯一的,则执行此操作

javascript - Google AdSense 抛出错误 - 只有一个 'enable page level ads allowed per page'

javascript - ReactNative - NativeBase - 列表显示为网格

javascript - 如果 javascript 中存在字符,则不匹配

javascript - querySelectorAll() 返回的元素上的 .getAttribute() 方法

javascript - 在Javascript单例中用数组成员初始化对象成员的属性

javascript - 人们如何在 HTML 页面中制作部分?