错误处理:try/catch与throw

错误处理

正常情况下js代码遇到错误后我们的浏览器会报错,后面的代码无法继续执行,浏览器控制台会出现错误提示

try/catch
try{
// 可能出错的代码
}catch(error){
// 错误处理
console.log(error.message)
}finally{
    console.log("不管怎样我都会执行")
}

try捕获错误,遇到错误时catch做出一些处理
try捕获到了出错误,那么try这个作用域中,报错后的代码不会执行了,但是如果catch中没有throw抛出错误,那么,try{ } catch(err){ } 外面的代码是可以继续执行的;抛出错误那么就不会执行了

try/catch与finally

不管怎么样finally中的代码一定会执行

1》如果没有错误,执行完try中的代码,就直接执行finally中的代码;接着执行其他代码

2》2.1 如果有错误,遇到错误后执行catch,然后执行finally;接着执行其他代码

​ 2.2 如果catch中抛出了一个错误,那么遇到错误后会先执行finally,然后再执行catch;代码终止执行

throw

throw()必须抛出任何类型的东西

抛出异常,用于自己定义错误信息

这样就可以获取更加准确、有效的错误信息了

try/catch与throw搭配使用
     try {

        const arr = 110;

        arr.sort();

      } catch (error) {

        throw new Error("传入的并非数组,不能使用sort方法");

      }

####捕获不到异步代码的错误
try 是捕获错误的代码必须是在try线程里的时候才能捕获到。而如果是异步函数,异步函数会进入队列,这个时候代码已经离开try的这个主线程,所以try是捕获不到异步代码的错误的

  try {
    setTimeout(() => {
      console.log(asyncUndefinedParam)
    }, 100)
  } catch (err) {
    console.log(err)
  }

上面这个代码会报错,没有捕获到这个异步的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值