当前位置:   article > 正文

鸿蒙开发之崩溃信息收集FaultLogger_鸿蒙开发 js crash

鸿蒙开发 js crash

前申:果然系统的API没有让我失望,日志完全看不出来崩溃原因所在

一、使用

  1. logCrash() {
  2. FaultLogger.query(FaultLogger.FaultType.JS_CRASH,(err,val) => {
  3. if (err) {
  4. console.log('fault log get an err'+JSON.stringify(err))
  5. return
  6. }
  7. let len = val.length
  8. for (let i = 0; i < len; i++) {
  9. //FaultLogInfo
  10. let logInfo = val[i]
  11. console.log('fault log reason '+logInfo.reason)
  12. console.log('fault log pid'+logInfo.pid)
  13. console.log('fault log uid'+logInfo.uid)
  14. console.log('fault log type'+logInfo.type)
  15. console.log('fault log timestamp'+logInfo.timestamp)
  16. console.log('fault log module'+logInfo.module)
  17. console.log('fault log summary'+logInfo.summary)
  18. console.log('fault log fullLog'+logInfo.fullLog)
  19. console.log('========== fault log end ==========')
  20. }
  21. })
  22. }

贴一下打印结果:

这个打印结果让我很迷茫啊,这能给我带来什么信息呢?reason没有,fullLog也啥有用信息没有。唉~~

不过,还是记录一下这个API吧。

API官方解释可以通过FaultLogger.query方法获取故障信息,然后通过FaultType的类型来获取不同的故障信息。如:NO_SPECIFIC(不区分故障类型)、APP_FREEZE(应用程序卡死故障类型)、JS_CRASH(JS程序故障类型)和CPP_CRASH(C++程序故障类型)。

二、遇到的注意点

我在制造崩溃的时候开始使用的代码是这样的

  1. makeAFaultCrash() {
  2. let names: string[] = []
  3. //制造一个数组越界的崩溃
  4. console.log('制造一个崩溃'+(names[2]))
  5. }

这在ArkTS中不会崩溃,除非我对names[2]再调用方法才会崩溃,即

  1. makeAFaultCrash() {
  2. let names: string[] = []
  3. //这样才会崩溃
  4. console.log('制造一个崩溃'+(names[2]).length)
  5. }

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

闽ICP备14008679号