慎用try catch

访客4年前关于黑客接单1027

前言

ECMA-262第3版引入了try catch语句,作为JavaScript中处置异常的一种尺度方式。基本的语法如下所示。
然则在前端js代码中很少看到try catch语句,并不是以是代码都需要加try catch来作得不偿失的“保险”,下面来剖析作为前端代码,哪些地方才需要真正加try catch。


一、try catch语法

try {
    //可能会导致错误的代码
} catch (error) {
    //在错误发生时怎么处置
}finally {
     //纵然报错始终执行
 }


二、try catch瑕玷

1.try catch耗性能

众所周知,js以一个大括号{}决议一个块级作用域,代码进入 try catch 的时刻 js引擎会拷贝当前的词法环境,拷贝的实在就是当前 scope 下的所有的变量,这样消耗的性能是很大的,性能消耗与try catch代码量以及变量成正比。

2.try catch捕捉不到异步错误

实验对异步方式举行try catch操作只能捕捉当次事宜循环内的异常,对call back执行时抛出的异常将无能为力。

try {
    setTimeout(()=>{
        const A = 1
        A = 2
    },0)
} catch (e) {
    // 这里并不能捕捉回调内里抛出的异常
    console.log("-----catch error------")
    console.log(e)
}
3.try catch可能会导致报错点更模糊

try catch语句中报错直接到catch中处置,而浏览器控制台看不到报错信息。但很多人并没有在catch中抛出报错信息,或改写成自己随意写的报错文言,这样实在不如直接看浏览器原生的报错修改bug更利便。


三、try catch总结

说了这么多try catch的瑕玷,有些小伙伴们就会新鲜到里那里用try catch对照合适呢?

try catch最适合处置那些我们无法控制的错误,如I/O操作,后端java读取I/O操作对照多好比读数据库,以是用try catch对照多。前端可以用在上传图片或async await同步骤接口。

async function f() {
  try {
    await Promise.reject('出错了');
  } catch(e) {
  }
  return await Promise.resolve('hello world');
}

然则大部分前端代码处置都不怎么依赖环境也没有I/O操作,都是自己写的代码,在明明白白地知道自己的代码会发生错误时,再使用try catch语句就不太合适了,以是慎用try catch。


泉源:https://segmentfault.com/a/1190000017409108


思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

企业所得税是什么意思,企业所得税怎么算

企业所得税是什么意思,企业所得税怎么算

各位财务小伙伴们,您还在为分不清企业所得税适用税率发愁吗?别急,打个响指,小编为您搞定这些难题~   一、基本税率25% 政策依据: 《中华人民共和国企业所得税法》 第四条...

俄罗斯黑梗凶不凶(俄罗斯什么狗最凶)

俄罗斯黑梗凶不凶(俄罗斯什么狗最凶)

本文目录一览: 1、俄罗斯有哪些犬种? 2、俄罗斯黑梗与巨型雪纳瑞怎么区分? 3、俄罗斯有什么狗 4、俄罗斯的本土犬种有哪些? 5、黑俄罗斯梗的性格怎么样? 6、俄罗斯本土犬有哪些...

北京人体 玲玲

近期有许多北京当地的盆友在后台管理留言板留言,想掌握有关北京人体模特静怡手机微信、QQ、电話、价钱、相片、视頻、所属企业、预定步骤及商务伴游手机微信等信息内容,北京益萌模特预约服务平台以便便捷大伙儿更...

找黑客解冻QQ-电脑被黑客入侵了怎么恢复(电脑被黑客入侵了开不了机怎么办)

找黑客解冻QQ-电脑被黑客入侵了怎么恢复(电脑被黑客入侵了开不了机怎么办)

找黑客解冻QQ相关问题 电脑被黑客入侵的现象相关问题 怎么通过黑客反入侵别人的手机 白手起家一年赚50万(怎样创业白手起家)...

一丈是多少米(古代的一丈是现在的多少米)

一丈是多少米(古代的一丈是现在的多少米)

    1丈≈3.33米。丈是在中国特有的测量单位,在我们的日常生活中几乎不常见到丈这个单位的出现,在古代使用的情况比较多。在不同的时期丈的进制不一样,比如在汉代时期1丈=2.31厘米,而在宋...

c盘perflogs是什么文件夹 电脑中perflogs文件夹能删除吗

近日有用户在整理电脑的时候,发现C盘中有一个perflogs,不知道这是什么文件夹,是否可以删除呢?其实这个是是Vista的日志信息,如磁盘扫描、错误信息、测试信息等,是可以删除的,不过还是会自动生成...