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

ask*_*r22 1 javascript

请看这段代码:

<!DOCTYPE html>
<html>
<body>

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

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

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当此代码运行时,错误是警告,我进入catch块.

但是,为什么这不满足以下代码:

<!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>
Run Code Online (Sandbox Code Playgroud)

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

SLa*_*aks 9

int n = 3;语法无效,这会阻止整个<script>块被解析.

因此,您的catch块实际上不存在.