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]