快應用如何避免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-2026 CODEPRJ.COM