作家
登录

从不用try-catch实现的async/await语法来说说错误处理

作者: 来源: 2017-11-02 16:50:09 阅读 我要评论

甚至还可以处理更复杂的情况

如今应当都知道 .catch(err => Promise.reject(xx)),这里的 xx 就是 try-catch 的 catch 块捕获到的对象,所以如不雅不合的营业 reject 出来不合的对象,比如有些是函数(表示缺点处理逻辑),有些是字符串(表示缺点消息),有些是数字(表示缺点代码)——其实只须要改 catch 块就行

  1. try { 
  2.        // ...    
  3.    } catch(something) { 
  4.        switch (typeof something) { 
  5.            case "string"
  6.                // show message something 
  7.                break; 
  8.            case "function"
  9.                something(); 
  10.                break; 
  11.            case "number"
  12.                // look up something as code 
  13.                // and show correlative message 
  14.                break; 
  15.            default
  16.                // deal with unknown error 
  17.        } 
  18.    }  

小结

用什么方法取决于实用处景、团队商定和小我爱好等多种身分,在不合的情况下须要采取不合的处理方法,并不是说哪一种就必定好于另一种——合适的擦?鲱好的!

为什么?因为在 Dima 的模式中,if (err) 实际上处理了两个营业:一是捕获会引起中断的 err ,并将其转换为缺点消息,二是经由过程 return 中断营业过程。所以当 err 转换为缺点消息这一过程不再须要的时刻,这种捕获中断再从新引起中断的处理主显得多余了。

【编辑推荐】

  1. JavaScript的函数式编程,你懂得吗?
  2. 早年端到全端:JavaScript逆袭之路
  3. 若何用JavaScript实现双向数据绑定
  4. JavaScript开辟者的10款必备对象
  5. JavaScript的6个算法实用小技能
【义务编辑:庞桂玉 TEL:(010)68476606】

  推荐阅读

  代码重构的那些坑和实战经验

2016年冬,我在一家创虻公司的小团队里搞软件开辟。彼时我们有一位真实的企业客户,且软件的第一版也已宣布。开辟按进度落成,在宣布时我欣喜若狂,也异常骄傲,看着体系办事于天天几百万>>>详细阅读


本文标题:从不用try-catch实现的async/await语法来说说错误处理

地址:http://www.17bianji.com/lsqh/38423.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)