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