From bc9e0484c303f13dc4253fafa1fbc41d4813121c Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Jun 2022 11:12:07 +0800 Subject: [PATCH] add user Signed-off-by: unknown --- zh-cn/application-dev/dfx/Readme-CN.md | 3 +- .../dfx/errormanager-guidelines.md | 90 +++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 zh-cn/application-dev/dfx/errormanager-guidelines.md diff --git a/zh-cn/application-dev/dfx/Readme-CN.md b/zh-cn/application-dev/dfx/Readme-CN.md index 3743ff1aa3..e136fdc028 100644 --- a/zh-cn/application-dev/dfx/Readme-CN.md +++ b/zh-cn/application-dev/dfx/Readme-CN.md @@ -9,4 +9,5 @@ - 分布式跟踪 - [分布式跟踪概述](hitracechain-overview.md) - [分布式跟踪开发指导](hitracechain-guidelines.md) - +- 错误管理 + - [错误管理开发指导](errormanager-guidelines.md) \ No newline at end of file diff --git a/zh-cn/application-dev/dfx/errormanager-guidelines.md b/zh-cn/application-dev/dfx/errormanager-guidelines.md new file mode 100644 index 0000000000..c494e5f28c --- /dev/null +++ b/zh-cn/application-dev/dfx/errormanager-guidelines.md @@ -0,0 +1,90 @@ +# 错误管理开发指导 + +## 场景介绍 + +当应用的代码存在一些不规范或者错误时,会在运行中产生一些异常和错误,如:应用未捕获异常、应用生命周期超时等等。产生错误后,应用会异常退出,这些错误日志通常都会保存在用户本地存储上,应用开发者在定位问题的时候就会产生不变。应用的开发者可以使用错误管理的相关接口,在应用退出前,把相关的错误及其日志上报到自己的服务平台来定位问题。 + +## 接口说明 + +应用错误管理接口由[errorManager](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.application.errorManager.d.ts)模块提供。 + +**错误管理接口功能介绍:** + +| 接口名 | 返回值 | 描述 | +| ------------------------------------------------------------ | -------------- | ---------------------------------------------------- | +| registerErrorObserver(observer: ErrorObserver) | number | 注册错误监听接口,当系统监测到应用对应的异常时会回调该监听。该接口为同步接口,返回值为该监听对应的序号。 | +| unregisterErrorObserver(observerId: number, callback: AsyncCallback) | void | 以callback的形式解除注册监听,传入的number为之前注册监听返回的序号。 | +| unregisterErrorObserver(observerId: number) | Promise | 以Promise的形式解除注册监听,传入的number为之前注册监听返回的序号。 | + +当采用callback作为异步回调时,可以在callback中进行下一步处理。当采用Promise对象返回时,可以在Promise对象中类似地处理接口返回值。具体结果码说明见[解除注册结果](#解除注册结果)。 + + +**错误监听(ErrorObserver)接口功能介绍:** + +| 接口名 | 返回值 | 描述 | +| ------------------------------ | ------- | ------------------------------------------------------------ | +| onUnhandledException(errMsg: string) | void | 系统回调接口,应用注册后,当应用产生未捕获的异常时由应用回调。 | + + +### 解除注册结果码 + +| 结果码 | 原因 | +| ------ | --------------------------- | +| 0 | 正常返回 | +| -1 | 传入的number不存在 | +| -2 | 参数错误 | + +## 开发示例 + ```js + import Ability from '@ohos.application.Ability' +import errorManager from '@ohos.application.errorManager' + +var registerId = -1; +var callback = { + onUnhandledException: function (errMsg) { + console.log(errMsg); + } +} +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + console.log("[Demo] MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + console.log("[Demo] MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[Demo] MainAbility onWindowStageCreate") + + globalThis.registerObserver = (() => { + registerId = errorManager.registerErrorObserver(callback); + }) + + globalThis.unRegisterObserver = (() => { + errorManager.unregisterErrorObserver(registerId, (result) => { + console.log("[Demo] result " + result.code + ";" + result.message) + }); + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.log("[Demo] MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[Demo] MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[Demo] MainAbility onBackground") + } +}; + ``` \ No newline at end of file -- GitLab