js-apis-app-ability-errorManager.md 3.1 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.errorManager (ErrorManager)
D
donglin 已提交
2

Y
yuwenze 已提交
3
ErrorManager模块提供对错误观察器的注册和注销的能力。使用场景:应用想要捕获js crash。
D
donglin 已提交
4 5 6 7 8 9

> **说明:**
> 
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块
D
donglin 已提交
10
```ts
M
mingxihua 已提交
11
import errorManager from '@ohos.app.ability.errorManager';
D
donglin 已提交
12 13 14 15
```

## ErrorManager.on

M
mingxihua 已提交
16
on(type: 'error', observer: ErrorObserver): number;
D
donglin 已提交
17 18 19 20 21 22 23 24 25

注册错误观测器。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
mingxihua 已提交
26
| type | string | 是 | 填写'error',表示错误观察器。 |
Y
yuwenze 已提交
27 28 29 30 31 32 33
| observer | [ErrorObserver](./js-apis-inner-application-errorObserver.md) | 是 | 错误观察器。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | number | 观察器的index值,和观察器一一对应。 |
D
donglin 已提交
34 35 36

**示例:**
    
D
donglin 已提交
37
```ts
M
mingxihua 已提交
38
let observer = {
D
donglin 已提交
39
    onUnhandledException(errorMsg) {
M
mingxihua 已提交
40
        console.log('onUnhandledException, errorMsg: ', errorMsg);
D
donglin 已提交
41
    }
M
mingxihua 已提交
42
};
M
mingxihua 已提交
43
let observerId = -1;
D
donglin 已提交
44
try {
M
mingxihua 已提交
45
    observerId = errorManager.on('error', observer);
D
donglin 已提交
46
} catch (paramError) {
M
mingxihua 已提交
47
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
48 49 50 51 52
}
```

## ErrorManager.off

M
mingxihua 已提交
53
off(type: 'error', observerId: number,  callback: AsyncCallback\<void>): void;
D
donglin 已提交
54 55 56 57 58 59 60 61 62

注销错误观测器。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
mingxihua 已提交
63
| type | string | 是 | 填写'error',表示错误观察器。 |
Y
yuwenze 已提交
64
| observerId | number | 是 | 由on方法返回的观察器的index值。 |
D
fix  
donglin 已提交
65
| callback | AsyncCallback\<void> | 是 | 表示指定的回调方法。 |
D
donglin 已提交
66 67 68

**示例:**
    
D
donglin 已提交
69
```ts
M
mingxihua 已提交
70
let observerId = 100;
D
donglin 已提交
71 72 73 74 75 76 77

function unregisterErrorObserverCallback(err) {
    if (err) {
        console.log('------------ unregisterErrorObserverCallback ------------', err);
    }
}
try {
M
mingxihua 已提交
78
    errorManager.off('error', observerId, unregisterErrorObserverCallback);
D
donglin 已提交
79
} catch (paramError) {
M
mingxihua 已提交
80
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
81 82 83 84 85
}
```

## ErrorManager.off

M
mingxihua 已提交
86
off(type: 'error', observerId: number): Promise\<void>;
D
donglin 已提交
87 88 89 90 91 92 93 94 95

注销错误观测器。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
mingxihua 已提交
96
| type | string | 是 | 填写'error',表示错误观察器。 |
Y
yuwenze 已提交
97
| observerId | number | 是 | 由on方法返回的观察器的index值。 |
D
donglin 已提交
98 99 100 101 102 103 104 105 106

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise\<void> | 返回执行结果。 |

**示例:**
    
D
donglin 已提交
107
```ts
M
mingxihua 已提交
108
let observerId = 100;
D
donglin 已提交
109
try {
M
mingxihua 已提交
110
    errorManager.off('error', observerId)
D
donglin 已提交
111 112 113 114 115
        .then((data) => {
            console.log('----------- unregisterErrorObserver success ----------', data);
        })
        .catch((err) => {
            console.log('----------- unregisterErrorObserver fail ----------', err);
M
mingxihua 已提交
116
    });
D
donglin 已提交
117
} catch (paramError) {
M
mingxihua 已提交
118
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
119 120 121
}

```