zltzlt 发表于 2020-1-15 19:45:21

JavaScript 异常处理

JavaScript 异常处理

1. try-catch-finally 语句

JavaScript 从 Java 语言中引入了 try-catch-finally 语句,其语法如下:

try {
statements;
} catch (exception) {
statements;
} finally {
statements;
}

其中,try 为尝试执行代码的关键字,catch 是捕捉异常的关键字,finally 是最终一定会被处理的代码的关键字,该关键字和后面大括号中的语句可以省略。

例如:

try {
"123123".charat(3);
} catch (exception) {
alert("出现错误!");
} finally {
document.write("完毕!");
}

由于 "123123".charat(3); 这一句代码会出错,所以会在页面弹出一个显示 "出现错误" 的提示框,并且异常处理完毕后会在网页上显示 "完毕"。

2. Error 对象

try-catch-finally 通常捕捉到的对象为 Error 对象,当运行 JavaScript 代码时,如果产生了错误或异常,JavaScript 就会生成一个 Error 对象的实例来描述错误,该实例中包含了一些特定的错误信息。

Error 对象有 name 和 message 两个属性。name 表示异常类型,message 表示实际异常信息。

例如:

try {
"123123".charat(3);
} catch (exception) {
alert("错误类型:" + exception.name + "\n错误信息:" + exception.message);
}

执行效果:



3. 使用 throw 语句抛出异常

有些 JavaScript 代码并没有语法上的错误,但存在逻辑错误。对于这种错误,JavaScript 是不会抛出异常的。

这时,就需要创建一个 Error 对象的实例,并使用 throw 语句抛出异常。在程序中使用 throw 语句可以有目的地抛出异常。

例如,定义一个变量,值为 1 与 0 的商,此变量的结果为无穷大(Infinity),如果希望自行检验除数为 0 的异常,可以使用 throw 语句抛出异常。

代码如下:

try {
var num = 1 / 0;
if (num == "Infinity") {
    throw new Error("除数不可以为 0!");
}
} catch (exception) {
alert(exception.message);
}

执行结果:

页: [1]
查看完整版本: JavaScript 异常处理