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);
D
donglin 已提交
41
    }
42 43 44 45 46 47 48 49
    onException(errorObj) {
        console.log('onException, name: ', errorObj.name);
        console.log('onException, message: ', errorObj.message);
        if (typeof(errorObject.stack) === 'string') {
            console.log('onException, stack: ', errorObj.stack);
        }
    }

M
mingxihua 已提交
50
};
M
mingxihua 已提交
51
let observerId = -1;
D
donglin 已提交
52
try {
M
mingxihua 已提交
53
    observerId = errorManager.on('error', observer);
D
donglin 已提交
54
} catch (paramError) {
M
mingxihua 已提交
55
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
56 57 58 59 60
}
```

## ErrorManager.off

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

注销错误观测器。

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

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

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

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

## ErrorManager.off

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

注销错误观测器。

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

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

**返回值:**

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

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

```