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
D
donglin 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
import errorManager from '@ohos.app.ability.errorManager'
```

## ErrorManager.on

on(type: "error", observer: ErrorObserver): number;

注册错误观测器。

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

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Y
review  
yuwenze 已提交
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
D
donglin 已提交
38 39 40 41 42
var observer = {
    onUnhandledException(errorMsg) {
        console.log('onUnhandledException, errorMsg: ', errorMsg)
    }
}
Y
yuwenze 已提交
43
var observerId = -1;
D
donglin 已提交
44
try {
Y
yuwenze 已提交
45
    observerId = errorManager.on("error", observer);
D
donglin 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
} catch (paramError) {
    console.log("error: " + paramError.code + ", " + paramError.message);
}
```

## ErrorManager.off

off(type: "error", observerId: number,  callback: AsyncCallback\<void>): void;

注销错误观测器。

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

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Y
review  
yuwenze 已提交
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
D
donglin 已提交
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
var observerId = 100;

function unregisterErrorObserverCallback(err) {
    if (err) {
        console.log('------------ unregisterErrorObserverCallback ------------', err);
    }
}
try {
    errorManager.off("error", observerId, unregisterErrorObserverCallback);
} catch (paramError) {
    console.log("error: " + paramError.code + ", " + paramError.message);
}
```

## ErrorManager.off

off(type: "error", observerId: number): Promise\<void>;

注销错误观测器。

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

**参数:**
 
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
Y
review  
yuwenze 已提交
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
D
donglin 已提交
108 109 110 111 112 113 114 115 116 117 118 119 120 121
var observerId = 100;
try {
    errorManager.off("error", observerId)
        .then((data) => {
            console.log('----------- unregisterErrorObserver success ----------', data);
        })
        .catch((err) => {
            console.log('----------- unregisterErrorObserver fail ----------', err);
    })
} catch (paramError) {
    console.log("error: " + paramError.code + ", " + paramError.message);
}

```