当前位置:   article > 正文

由window.onerror报错引发的思考_creator3.x window.onerror

creator3.x window.onerror

前言:

公司内部的埋点监控系统近期发现我负责的系统有以下的js error报错信息出现,且频率非常高,搞的我心里有点慌…(ps: 公司内部规定,js error异常报错三周没有改善者, money会变少)

报错信息如下:

  1. {
  2. "errorMessage":"Uncaught SyntaxError: \"undefined\" is not valid JSON",
  3. "scriptURI":"http://mdsygl-prod.store-cash-fe.apis.yonghui.cn/js/npm/scheduler.5282ff1e.js?17f7c55650dea7ebf76b",
  4. "lineNo":10,
  5. "columnNo":1587,
  6. "error":{}
  7. }

思考: 

于是带着这个问题,在网上寻找着答案,一开始我是沿着scriptURI这个源码的线索一直往下找,scheduler.5282ff1e.js文件其实是react一个调度文件

源码截图如下:

找到上面的图片,我以为是哪块使用postMessage导致的问题,正常的思维肯定是copy postMessage,然后在项目代码中去检索,然后一无所获…,项目中根据没有使用postMessage;

也是因为以上的解题思路彻底的把我带偏了,于是我换了种方式,直接带着报错信息去检索(ps: 万一是其他代码的连锁反应导致的呢?真实的异常代码反而被屏蔽了),于是我搜索了

\"undefined\" is not valid JSON" 这个报错信息,一路找下来,发现可能性比较大是因为JSON.parse导致的;

于是我尝试下JSON.parse(undefined), 果然报错信息一模一样;

紧接着,我在项目代码中检索JSON.parse, 发现好几处地方都是直接使用,我滴个乖乖,好家伙,终于逮到了。

解决办法:

  1. let param = ''
  2. try {
  3. param = JSON.parse(a)
  4. } catch(error) {
  5. console.log(error)
  6. }

问题最终得到完美解决!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/883847
推荐阅读
相关标签
  

闽ICP备14008679号