2018.1.2笔记

Error对象和try..catch语句

Error 对象和try..catch语句

1.Error 对象

Javascript解析或者执行时,一旦发生错误,JavaScript引擎就会抛出一个错误对象。JavaScript原生的提供一个Error构造函数,所有抛出的错误都是这个构造函数的实例。
根据语言标准,Error对象示例必须具有message属性,表示错误出现时的提示信息。对于大部分的Javascript引擎,对Error对象还提供name和stock属性,分别表示错误的名称和错误的堆栈信息,他们是非标准的,不是每一个Error实例都要去实现。

f2();
function f1() {
    console.log(abc);
}
function f2() {
   f1();
}

观察控制台中的错误。
其中:“abc is not defined”是错误提示信息。
最下面的三行错误信息就是堆栈信息。

2.try...catch语句

为了对错误进行处理,我们需要使用try...catch结构。
允许在try...catch块最后定义finally块,表示不管是否出现错误,都必须要在后面运行的语句。
在finally块中一般都是做一些清理的工作。

function f1() {
   ;;;;;
   try {
      console.log("begin");
       console.log(abc); // 一旦出错,Javascript引擎就是构造一个Error对象
    } catch(err) {
      console.log(err.message); 
    } finally {
        console.log("end");
   }

Javascript的原生错误类型

Error对象是最一般的错误类型,在其基础上,Javascript还定义了6中错误,也就是说存在6中派生的错误对象。

1. SyntaxError是解析代码时发生的错误

var 1a = "abc";
console.log "abc");

2. ReferenceError 是引用一个不存在的变量发生的错误

console.log(abc); // 引用一个不存在的变量
console.log() = 1; // 将一个值分配给一个无法分配的对象

3. RangeError 是当一个值超出有效范围时发生的错误
var arr = new Array(-1);

4.TypeError 是变量或者参数不是预期类型时发生的错误。比如字符串、数值、布尔等原始类型的值使用new命令,就是抛出该错误。
new 123;

5.URIError是URI相关函数不正确时抛出的错误

6.EvalError 是Eval函数没有正确执行时抛出的错误

Javascript的原生错误类型

Error对象是最一般的错误类型,在其基础上,Javascript还定义了6中错误,也就是说存在6中派生的错误对象。

1. SyntaxError是解析代码时发生的错误

var 1a = "abc";
console.log "abc");

2. ReferenceError 是引用一个不存在的变量发生的错误

console.log(abc); // 引用一个不存在的变量
console.log() = 1; // 将一个值分配给一个无法分配的对象

3. RangeError 是当一个值超出有效范围时发生的错误
var arr = new Array(-1);

4.TypeError 是变量或者参数不是预期类型时发生的错误。比如字符串、数值、布尔等原始类型的值使用new命令,就是抛出该错误。
new 123;

5.URIError是URI相关函数不正确时抛出的错误

6.EvalError 是Eval函数没有正确执行时抛出的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值