鱼C论坛

 找回密码
 立即注册
查看: 2128|回复: 0

[学习笔记] JavaScript 异常处理

[复制链接]
发表于 2020-1-15 19:45:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-2 15:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表