1 关键字

稳定性测试;jscrash;属性未定义

2 问题描述

设备版本:3.2.9.2

使用DevEco Testing工具进行系统遍历测试,在测试过程中com.ohos.note应用出现jscrash,Error message: Cannot read property uuid of undefined,详细信息如下图:

img

3 问题原因

3.1 正常机制

使用DevEco Testing工具进行系统遍历测试,不会出现jscrash报错,测试全部通过。

3.2 异常机制

使用DevEco Testing工具进行系统遍历测试,在测试过程中com.ohos.note应用出现jscrash,报错信息:Cannot read property uuid of undefined。

img

4 解决方案

调用属性uuid前分别对其对象以及该属性进行是否未定义或为空的判断,判断通过再调用,如下图:

img

5 定位过程

1.首先根据通过jscrash问题定界脚本将该jscrash文件进行解析,解析后获取到对应报错应用名:com.ohos.note 以及问题栈名:getFolderText;

img

2.根据栈名getFolderText查找到问题代码行数,通过错误信息:Cannot read property uuid of undefined大致定位是因为uuid未定义导致抛异常,再进一步看该代码行,uuid是FolderData对象的属性,因此得出结论是因为对象FolderData未定义,导致了uuid未定义。

img

3.因此需要分别判断FolderData和uuid是否未定义或为空。

6 知识分享

使用ets开发应用的过程中,调用对象的方法或属性前,先对该对象、方法以及属性进行是否未定义的判断,防止应用抛异常。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐