javascript - Javascript异常处理查询

标签 javascript exception

我对 Javascript 异常处理感到困惑,我想弄清楚 Javascript 可以捕获哪些错误,或者只能使用 if elses 处理哪些错误 就像下面的情况一样,在第一种情况下,由于 undefined variable ,我最终进入了 catch block ,但在其他情况下,我留在了 try block 中(并且必须使用 if else 来捕获它),尽管两者都是“未定义”

第一:

try {
    var x = 90;
    var value = x / y;
}
catch (err) {
    document.write(err.name + ": " + err.message + "<br/>");
}

第二个:

function add(x, y) {
    var resultString = "Hello! The result of your math is: ";
    var result = x + y;
    // return resultString + result; not returning  anything; hence, "undefined" also
}

try {
    var addResult = add(2, 3);
    document.write(" the result is : " + addResult + "<br/>");
} catch (err) {
    document.write(err.name + ": " + err.message + "<br/>");
}

为什么我在第二种情况下也没有陷入 catch block ?

请澄清我的理解。

最佳答案

在第一种情况下,您没有在任何地方定义 y,因此会引发异常,该异常会被 catch block 捕获,但在第二种情况下,您已经定义了 addResult=undefined 并且只是显示值,所以也不异常(exception)

如果您的第一个案例是

try {
    var x = 90;
    var y = undefined;
    var value = x / y;
}
catch (err) {
    document.write(err.name + ": " + err.message + "<br/>");
}

那么第一种情况也不异常(exception)。

希望你明白了:)

关于javascript - Javascript异常处理查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162471/

相关文章:

java - 如何将 NumberFormatException 设置为标签

java - System.out的实现中不需要捕获异常吗?

java - 如何捕获 Spring/Spring Boot 2.x 的所有异常?

c# - 如何处理代码深处的异常?

javascript - 使用 dom 访问调用 javascript 文件

javascript - 如何在 acrobat pdf 上应用密码提示 javascript

javascript - (Node js) 如何向特定用户发送通知?

javascript - 脚本标签属性 - javascript

javascript - Coffeescript 存在运算符有时会检查未定义的情况,但并非总是如此

java - 我第一次使用 launch4j 并收到以下错误