乐趣区

关于appgallery-connect:快应用如何避免JSONparse解析出错

景象形容
代码执行 fetch 申请,申请返回的数据默认是 JSON 化的字符串了,开发者应用 JSON 对象解析,这是失常逻辑;

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

解决办法

  1. 在每个 JSON.parse() 的代码执行处进行 try-catch 突围,解决出错状况
  2. 在 app.ux 中提前代理 JSON.parse(),应用 try-catch 突围,待异样呈现时埋点数据,或者返回默认失常数据代替。

举荐计划 2,示例代码如下:

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

退出移动版