JavaScript中错误处理

1 如何进行错误处理

使用try()......catch(),语法为:

try{
   // 可能出现错误的代码
}
catch(e)
   // 错误处理代码
}

catch:用来捕获错误,参数e用来捕获错误对象

错误案例演示:

var o = {};
o.func(); // 这行代码会出错,因为调用了不存在的方法
console.log("test"); // 前面的代码出错时,这行代码不会执行

在这里插入图片描述
当我们知道这行代码可能会出现问题时,就可以使用try()......catch()来进行错误处理,案例如下:

var o = {};
try { // 在try中编写可能出现错误的代码
    o.func();
    console.log("a"); // 如果前面的代码出错,这行代码不会执行
} catch (e) { // 在catch中捕获错误,e表示错误对象
    console.log(e);
}
console.log('b'); // 如果错误已经被处理,这行代码会执行

在这里插入图片描述

2 错误对象的传递

书写错误代码:

function foo1() {
    foo2(); // 调用foo2函数
    console.log("foo1");
}
function foo2() {
    var o = {};
    o.func(); // 未定义这个函数,发生错误
}
foo1();

在这里插入图片描述
将上面的代码使用try()……catch()进行错误处理后:

function foo1() {
    foo2(); // 调用foo2函数
    console.log("foo1");
}
function foo2() {
    var o = {};
    o.func(); // 调用func()函数
}
try {
    foo1(); // 调用foo1函数
} catch (e) {
    console.log("test"); // 如果错误输出test
}

结果是:test

3 抛出错误对象throw

throw语句用来抛出一个用户自定义的异常。当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。如果调用者函数中没有catch块,程序将会终止。

try {
    var e1 = new Error("错误信息:橘猫吃胖了");
    throw e1; // 将错误对象e1抛出
} catch (error) {
    console.log(error.message); // 输出错误信息
    console.log(error === e1); // 判断错误对象是否等于错误信息
}

在这里插入图片描述

4 错误类型

类型说明
Error表示普通错误,其余6种类型的错误对象都继承自该对象
EvalError调用eval()函数错误,已经弃用,为了向后兼容,低版本还可以使用
RangeError数值超出有效范围,如new Array(-1)
ReferenceError引用了一个不存在的变量,如var a = 1; a + b;(变量b未定义)
SyntaxError解析过程语法错误,如{ ; }if()var a = new;
TypeError变量或参数不是预期类型,如调用了不存在的函数或方法
URIError解析URI编码出错,调用encodeURI()、escape()等URI处理函数时出现
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值