慎用try catch

访客3年前关于黑客接单987

前言

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米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

艾帝雅裴翠手表价格表(普通中档机械手表正常多少)

佰欧艾帝雅裴翠手表价值表价值查询购置销售公司 艾帝雅裴翠手表藤黄款价格   465300/元     衡水零数睑商贸公司   普通中档机器手表石磨蓝版几多   173300/元     张家口住...

家家知面包店加盟怎样?着力点稳固创收

家家知面包店加盟怎样?着力点稳固创收

跟着经济程度的不绝的成长。不绝的进步着的餐饮行业虽然会为公共消费者带来更多的美食产物。那么此刻的美食产物越来越多,虽然就会为公共消费者的味蕾获得满意做出庞大的孝敬。浩瀚的美食产物各人偏偏就对付面包产物...

皓仔豆皮涮牛肚火锅值得加盟么?加入就是赚到

皓仔豆皮涮牛肚火锅值得加盟么?加入就是赚到

此刻的社会上各人都对创业发生了一种莫名的好奇感,各人都想要插手到创业的行业中来,可是各人有有所疑虑那就是畏惧创业失败,因为一旦创业失败,创业者们将要面对惨重的价钱,可是各人也不消担忧,因为只要选择了好...

如何破解女朋友的微信聊天记录

对于喜欢钓鱼的小伙伴们来说,比较头疼的就是关于钓鱼红虫的保存问题。喜欢钓鱼的小伙伴们都知道,钓鱼红虫很贵,并且不易保存每次掉完后有多余的扔了有很浪费。钓鱼红虫多少钱一斤 钓鱼红虫怎么保存。友谊长存带...

苹果11微信如何变成黑色呢

系统版本为iOS14.1,手机微信APP版本号为7.0.17,苹果11微信设置夜间模式的方式以下:      1、最先在手机主界面上,点一下【设定】按键;   2、然后在设定页面,点一下【显示信息与...

招黑客上班,四大网络安全威胁趋势 黑客,黑客入侵网站tt90go

一些共同的术语,或许只呈现在某一系列如自定义歹意软件的少数组中,乃至能够削减常见的要挟事情,例如“鱼叉式网络垂钓”,它们适用于绝大多数集体。 }· The current directoryk) 拒绝...