快應用如何避免JSON.parse()解析出錯

華為開發者論壇發表於2021-07-19

現象描述

程式碼執行 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/consumer/cn/forum/topic/0201454971771540781?fid=0101271690375130218


原作者: Mayism

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2782023/,如需轉載,請註明出處,否則將追究法律責任。

相關文章