js-apis-app-ability-errorManager.md 3.4 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);
X
xinking129 已提交
41
    },
42 43 44
    onException(errorObj) {
        console.log('onException, name: ', errorObj.name);
        console.log('onException, message: ', errorObj.message);
X
xinking129 已提交
45
        if (typeof(errorObj.stack) === 'string') {
46 47 48
            console.log('onException, stack: ', errorObj.stack);
        }
    }
M
mingxihua 已提交
49
};
M
mingxihua 已提交
50
let observerId = -1;
D
donglin 已提交
51
try {
M
mingxihua 已提交
52
    observerId = errorManager.on('error', observer);
D
donglin 已提交
53
} catch (paramError) {
M
mingxihua 已提交
54
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
55 56 57 58 59
}
```

## ErrorManager.off

M
mingxihua 已提交
60
off(type: 'error', observerId: number,  callback: AsyncCallback\<void>): void;
D
donglin 已提交
61 62 63 64 65 66 67 68 69

注销错误观测器。

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

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

**示例:**
    
D
donglin 已提交
76
```ts
M
mingxihua 已提交
77
let observerId = 100;
D
donglin 已提交
78 79 80

function unregisterErrorObserverCallback(err) {
    if (err) {
M
mingxihua 已提交
81
        console.error('------------ unregisterErrorObserverCallback ------------', err);
D
donglin 已提交
82 83 84
    }
}
try {
M
mingxihua 已提交
85
    errorManager.off('error', observerId, unregisterErrorObserverCallback);
D
donglin 已提交
86
} catch (paramError) {
M
mingxihua 已提交
87
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
88 89 90 91 92
}
```

## ErrorManager.off

M
mingxihua 已提交
93
off(type: 'error', observerId: number): Promise\<void>;
D
donglin 已提交
94 95 96 97 98 99 100 101 102

注销错误观测器。

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

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
mingxihua 已提交
103
| type | string | 是 | 填写'error',表示错误观察器。 |
Y
yuwenze 已提交
104
| observerId | number | 是 | 由on方法返回的观察器的index值。 |
D
donglin 已提交
105 106 107 108 109 110 111 112 113

**返回值:**

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

**示例:**
    
D
donglin 已提交
114
```ts
M
mingxihua 已提交
115
let observerId = 100;
D
donglin 已提交
116
try {
M
mingxihua 已提交
117
    errorManager.off('error', observerId)
D
donglin 已提交
118 119 120 121
        .then((data) => {
            console.log('----------- unregisterErrorObserver success ----------', data);
        })
        .catch((err) => {
M
mingxihua 已提交
122
            console.error('----------- unregisterErrorObserver fail ----------', err);
M
mingxihua 已提交
123
    });
D
donglin 已提交
124
} catch (paramError) {
M
mingxihua 已提交
125
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
126 127 128
}

```