js异常处理

文章详细介绍了JavaScript中如何使用throw抛出异常,以及catch和finally块如何捕获并处理异常。当在函数中throw异常后,后续代码不会执行,异常会逐层向上冒泡,直至被处理或导致程序终止。示例展示了带异常的foo1函数在foo2函数中如何被try-catch结构捕获和打印。
摘要由CSDN通过智能技术生成

异常

抛出异常类型

  1. number/string/boolean

  2. 对象,如 throw new Error(‘xxx’)

函数中throw抛出异常后,后续的代码不会执行

捕获异常

函数中throw抛出异常后,没有对异常进行捕获,异常会传递到上一个调用函数中,直到全局代码中。

若全局依然没有对异常捕获,则报错并且终止程序运行。

function foo1() {
    console.log('foo1 start');
    console.log('foo1');
    console.log('foo1 end');
}

function foo2() {
    console.log('foo2 start');
    console.log('foo2');

    try {
        console.log('try');
        foo1()
    } catch (error) {
        console.log(error);
    } finally {
        console.log('finally');
    }
    console.log('foo2 end');
}

foo2()

// 没有异常打印:
//foo2 start
//foo2
//try
//foo1 start
//foo1
//foo1 end
//finally
//foo2 end
function foo1() {
    console.log('foo1 start');
    console.log('foo1');
    // 抛出异常
    throw new Error('报错了')
    console.log('foo1 end');
}

function foo2() {
    console.log('foo2 start');
    console.log('foo2');

    try {
        console.log('try');
        foo1()
    } catch (error) {
        console.log(error);
    } finally {
        console.log('finally');
    }
    console.log('foo2 end');
}

foo2()

// 抛出异常打印:
//foo2 start
//foo2
//try
//foo1 start
//foo1
//Error: 报错了
//    at foo1 (test.html:19:13)
//    at foo2 (test.html:29:9)
//    at test.html:38:5
//finally
//foo2 end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值