购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.3 异常处理

异常是指程序运行过程中发生的一些不正常事件(如除0溢出、数组下标越界、所要读取的文件不存在、网络连接中断、服务器崩溃等)。JavaScript可以捕获异常并进行相应的处理。通常用到的异常处理语句包括try…catch…finally语句和throw语句。

1.try…catch…finally语句

语法格式如下:

try语句块中的语句首先被执行。如果运行中发生了错误,程序就会转移到位于catch语句块中的语句,其中括号中的error参数被作为例外变量传递;如果运行中没有错误,catch语句块的语句被跳过不执行。无论是否发生异常,最后将执行finally语句块中的语句。try和catch成对出现,finally可以省略。

在上面代码中,由于变量num未定义,JavaScript将抛出异常(JavaScript实际上会创建带有两个属性的Error对象:name和message)。catch语句块捕获到之后,在控制台中输出相应的错误信息“Uncaught ReferenceError: num is not defined”。最后,finally语句块中的代码会执行。try…catch…finally语句执行完毕后,不影响其他程序的执行,因此控制台最后会输出“其他代码”。

2.throw语句

throw语句允许创建自定义错误,即抛出异常(抛出错误)。

异常可以是JavaScript字符串、数字、布尔值或对象:

如果把throw与try和catch一同使用,就可以控制程序流程并生成自定义错误消息。示例如下:

在上面代码中,定义了一个devide函数,判断分子是否为0,如果为0,就用throw抛出异常。在try里面调用devide函数,如果出现分子为0,则运行catch里面的代码。

提示: 错误总会发生!设计良好的程序应该在程序发生异常时提供处理这些异常的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。 AKujhCVGqeEaN4VTOelKdEpU2CaKGmiUo97sD/QRKFTrTNAs5HDAjUGUOvIycmvq

点击中间区域
呼出菜单
上一章
目录
下一章
×