快应用如何避免JSON.parse()解析出错


现象描述

代码执行 fetch 请求,请求返回的数据默认是 JSON 化的字符串了,开发者使用 JSON 对象解析,这是正常逻辑;

但是一旦遇到服务器端权限校验失败等问题时,会返回类似 503 的 HTML 页面,此时 JSON 解析肯定就会失败。

解决方法

1. 在每个JSON.parse() 的代码执行处进行 try-catch 包围,处理出错情况

2. 在 app.ux 中提前代理 JSON.parse(),使用 try-catch 包围,待异常出现时埋点数据,或者返回默认正常数据替代。

推荐方案2,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
export  function  parseProxy () {
   const rawParse = JSON.parse
   JSON.parse =  function  (str, defaults) {
     try  {
       return  rawParse(str)
     }
     catch  (err) {
       console.error(`JSON解析失败:${str}, ${err.stack}`)
       return  defaults
     }
   }
}

 

原文链接:https://developer.huawei.com/...
原作者:Mayism


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM