• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.errorManager (ErrorManager)
2
3The **ErrorManager** module provides APIs for registering and deregistering error observers. For example, you can use the APIs to register an observer when your application wants to capture JS crashes.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8
9## Modules to Import
10```ts
11import errorManager from '@ohos.app.ability.errorManager';
12```
13
14## ErrorManager.on
15
16on(type: 'error', observer: ErrorObserver): number;
17
18Registers an error observer.
19
20**System capability**: SystemCapability.Ability.AbilityRuntime.Core
21
22**Parameters**
23
24| Name| Type| Mandatory| Description|
25| -------- | -------- | -------- | -------- |
26| type | string | Yes| Type of the API to call. It is fixed at **"error"**.|
27| observer | [ErrorObserver](./js-apis-inner-application-errorObserver.md) | Yes| Digital code of the observer.|
28
29**Return value**
30
31  | Type| Description|
32  | -------- | -------- |
33  | number | Index of the observer.|
34
35**Error codes**
36
37| ID| Error Message|
38| ------- | -------- |
39| 16000003 | Id does not exist. |
40
41For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
42
43**Example**
44
45```ts
46import errorManager from '@ohos.app.ability.errorManager';
47import { BusinessError } from '@ohos.base';
48
49let observer: errorManager.ErrorObserver = {
50    onUnhandledException(errorMsg) {
51        console.log('onUnhandledException, errorMsg: ', errorMsg);
52    },
53    onException(errorObj) {
54        console.log('onException, name: ', errorObj.name);
55        console.log('onException, message: ', errorObj.message);
56        if (typeof(errorObj.stack) === 'string') {
57            console.log('onException, stack: ', errorObj.stack);
58        }
59    }
60};
61let observerId = -1;
62try {
63    observerId = errorManager.on('error', observer);
64} catch (paramError) {
65    let code = (paramError as BusinessError).code;
66    let message = (paramError as BusinessError).message;
67    console.error(`error: ${code}, ${message}`);
68}
69```
70
71## ErrorManager.off
72
73off(type: 'error', observerId: number,  callback: AsyncCallback\<void>): void;
74
75Deregisters an error observer. This API uses an asynchronous callback to return the result.
76
77**System capability**: SystemCapability.Ability.AbilityRuntime.Core
78
79**Parameters**
80
81| Name| Type| Mandatory| Description|
82| -------- | -------- | -------- | -------- |
83| type | string | Yes| Type of the API to call. It is fixed at **"error"**.|
84| observerId | number | Yes| Index of the observer returned by **on()**.|
85| callback | AsyncCallback\<void> | Yes| Callback used to return the result.|
86
87**Error codes**
88
89| ID| Error Message|
90| ------- | -------- |
91| 16000003 | Id does not exist. |
92
93For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
94
95**Example**
96
97```ts
98import errorManager from '@ohos.app.ability.errorManager';
99import { BusinessError } from '@ohos.base';
100
101let observerId = 100;
102
103function unregisterErrorObserverCallback(err: BusinessError) {
104    if (err) {
105        console.error('------------ unregisterErrorObserverCallback ------------', err);
106    }
107}
108try {
109    errorManager.off('error', observerId, unregisterErrorObserverCallback);
110} catch (paramError) {
111    let code = (paramError as BusinessError).code;
112    let message = (paramError as BusinessError).message;
113    console.error(`error: ${code}, ${message}`);
114}
115```
116
117## ErrorManager.off
118
119off(type: 'error', observerId: number): Promise\<void>;
120
121Deregisters an error observer. This API uses a promise to return the result.
122
123**System capability**: SystemCapability.Ability.AbilityRuntime.Core
124
125**Parameters**
126
127| Name| Type| Mandatory| Description|
128| -------- | -------- | -------- | -------- |
129| type | string | Yes| Type of the API to call. It is fixed at **"error"**.|
130| observerId | number | Yes| Index of the observer returned by **on()**.|
131
132**Return value**
133
134| Type| Description|
135| -------- | -------- |
136| Promise\<void> | Promise used to return the result.|
137
138**Error codes**
139
140| ID| Error Message|
141| ------- | -------- |
142| 16000003 | Id does not exist. |
143
144For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
145
146**Example**
147
148```ts
149import errorManager from '@ohos.app.ability.errorManager';
150import { BusinessError } from '@ohos.base';
151
152let observerId = 100;
153try {
154    errorManager.off('error', observerId)
155        .then((data) => {
156            console.log('----------- unregisterErrorObserver success ----------', data);
157        })
158        .catch((err: BusinessError) => {
159            console.error('----------- unregisterErrorObserver fail ----------', err);
160    });
161} catch (paramError) {
162    let code = (paramError as BusinessError).code;
163    let message = (paramError as BusinessError).message;
164    console.error(`error: ${code}, ${message}`);
165}
166
167```
168