1# @ohos.app.ability.errorManager (ErrorManager) 2 3ErrorManager模块提供对错误观察器的注册和注销的能力。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10```ts 11import { errorManager } from '@kit.AbilityKit'; 12``` 13 14## errorManager.on('error') 15 16> **注意:** 17> 18> 在主线程注册errormanager.on接口,当前版本不支持捕获子线程(如:taskpool)中的异常。 19> 20> 使用errormanager.on接口应用不会退出,建议在回调函数执行完后,增加同步退出操作。 21 22on(type: 'error', observer: ErrorObserver): number 23 24注册错误观测器。注册后可以捕获到应用产生的js crash,应用崩溃时进程不会退出。 25 26**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 27 28**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 29 30**参数:** 31 32| 参数名 | 类型 | 必填 | 说明 | 33| -------- | -------- | -------- | -------- | 34| type | string | 是 | 填写'error',表示错误观察器。 | 35| observer | [ErrorObserver](js-apis-inner-application-errorObserver.md) | 是 | 错误观察器。 | 36 37**返回值:** 38 39 | 类型 | 说明 | 40 | -------- | -------- | 41 | number | 观察器的index值,和观察器一一对应。 | 42 43**错误码**: 44 45以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 46 47| 错误码ID | 错误信息 | 48| ------- | -------- | 49| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 50| 16000003 | The specified ID does not exist. | 51 52**示例:** 53 54```ts 55import { errorManager } from '@kit.AbilityKit'; 56import { BusinessError } from '@kit.BasicServicesKit'; 57 58let observer: errorManager.ErrorObserver = { 59 onUnhandledException(errorMsg) { 60 console.info('onUnhandledException, errorMsg: ', errorMsg); 61 }, 62 onException(errorObj) { 63 console.info('onException, name: ', errorObj.name); 64 console.info('onException, message: ', errorObj.message); 65 if (typeof(errorObj.stack) === 'string') { 66 console.info('onException, stack: ', errorObj.stack); 67 } 68 } 69}; 70let observerId = -1; 71 72try { 73 observerId = errorManager.on('error', observer); 74} catch (paramError) { 75 let code = (paramError as BusinessError).code; 76 let message = (paramError as BusinessError).message; 77 console.error(`error: ${code}, ${message}`); 78} 79``` 80 81## errorManager.on('globalErrorOccurred')<sup>18+</sup> 82 83on(type: 'globalErrorOccurred', observer: GlobalObserver): void 84 85在进程中的任一线程注册errormanager.on接口,支持捕获其他子线程(如:taskpool)中的异常,应用崩溃时进程不会退出,建议在回调函数执行完后,增加同步退出操作。 86 87**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 88 89**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 90 91**参数:** 92 93| 参数名 | 类型 | 必填 | 说明 | 94| -------- | -------- | -------- | -------- | 95| type | string | 是 | 填写'globalErrorOccurred',表示错误观察器。 | 96| observer | [GlobalObserver](#globalobserver18) | 是 | 自定义异常处理回调函数。 | 97 98**错误码**: 99 100以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 101 102| 错误码ID | 错误信息 | 103| ------- | -------- | 104| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 105| 16200001 | If the caller is invalid. | 106 107**示例:** 108 109```ts 110import { errorManager } from '@kit.AbilityKit'; 111import { BusinessError } from '@kit.BasicServicesKit'; 112 113function errorFunc(observer: errorManager.GlobalError) { 114 console.info("result name :" + observer.name); 115 console.info("result message :" + observer.message); 116 console.info("result stack :" + observer.stack); 117 console.info("result instanceName :" + observer.instanceName); 118 console.info("result instaceType :" + observer.instanceType); 119} 120 121try { 122 errorManager.on('globalErrorOccurred', errorFunc); 123} catch (paramError) { 124 let code = (paramError as BusinessError).code; 125 let message = (paramError as BusinessError).message; 126 console.error(`error: ${code}, ${message}`); 127} 128``` 129 130## errorManager.off('globalErrorOccurred')<sup>18+</sup> 131 132off(type: 'globalErrorOccurred', observer?: GlobalObserver): void 133 134注销错误观测器,即取消以前注册的callback监听,取消之后无法实现全局监听。 135 136如果传入的回调不在通过on方法注册的回调队列中,将抛出16300004错误码,因此建议使用try-catch逻辑进行处理。 137 138**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 139 140**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 141 142**参数:** 143 144| 参数名 | 类型 | 必填 | 说明 | 145| -------- | -------- | -------- | -------- | 146| type | string | 是 | 填写'globalErrorOccurred',表示错误观察器。 | 147| observer | [GlobalObserver](#globalobserver18) | 否 | 由on方法注册的callback。建议使用该参数,缺省时默认清除所有通过on注册的相同env的callback,否则删除指定callback。 | 148 149**错误码**: 150 151以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 152 153| 错误码ID | 错误信息 | 154| ------- | -------- | 155| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 156| 16200001 | If the caller is invalid. | 157| 16300004 | If the observer does not exist | 158 159**示例:** 160 161```ts 162import { errorManager } from '@kit.AbilityKit'; 163import { BusinessError } from '@kit.BasicServicesKit'; 164 165function errorFunc(observer: errorManager.GlobalError) { 166 console.info("result name :" + observer.name); 167 console.info("result message :" + observer.message); 168 console.info("result stack :" + observer.stack); 169 console.info("result instanceName :" + observer.instanceName); 170 console.info("result instaceType :" + observer.instanceType); 171} 172 173try { 174 errorManager.off('globalErrorOccurred', errorFunc) 175} catch (paramError) { 176 let code = (paramError as BusinessError).code; 177 let message = (paramError as BusinessError).message; 178 console.error(`error: ${code}, ${message}`); 179} 180``` 181 182## errorManager.off('error') 183 184off(type: 'error', observerId: number, callback: AsyncCallback\<void>): void 185 186注销错误观测器。使用callback异步返回。 187 188**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 189 190**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 191 192**参数:** 193 194| 参数名 | 类型 | 必填 | 说明 | 195| -------- | -------- | -------- | -------- | 196| type | string | 是 | 填写'error',表示错误观察器。 | 197| observerId | number | 是 | 由on方法返回的观察器的index值。 | 198| callback | AsyncCallback\<void> | 是 | 表示指定的回调方法。 | 199 200**错误码**: 201 202以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 203 204| 错误码ID | 错误信息 | 205| ------- | -------- | 206| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 207| 16000003 | The specified ID does not exist. | 208 209**示例:** 210 211```ts 212import { errorManager } from '@kit.AbilityKit'; 213import { BusinessError } from '@kit.BasicServicesKit'; 214 215let observerId = 100; 216 217function unregisterErrorObserverCallback(err: BusinessError) { 218 if (err) { 219 console.error('------------ unregisterErrorObserverCallback ------------', err); 220 } 221} 222 223try { 224 errorManager.off('error', observerId, unregisterErrorObserverCallback); 225} catch (paramError) { 226 let code = (paramError as BusinessError).code; 227 let message = (paramError as BusinessError).message; 228 console.error(`error: ${code}, ${message}`); 229} 230``` 231 232## errorManager.off('error') 233 234off(type: 'error', observerId: number): Promise\<void> 235 236注销错误观测器。使用Promise异步返回。 237 238**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 239 240**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 241 242**参数:** 243 244| 参数名 | 类型 | 必填 | 说明 | 245| -------- | -------- | -------- | -------- | 246| type | string | 是 | 填写'error',表示错误观察器。 | 247| observerId | number | 是 | 由on方法返回的观察器的index值。 | 248 249**返回值:** 250 251| 类型 | 说明 | 252| -------- | -------- | 253| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 254 255**错误码**: 256 257以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 258 259| 错误码ID | 错误信息 | 260| ------- | -------- | 261| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 262| 16000003 | The specified ID does not exist. | 263 264**示例:** 265 266```ts 267import { errorManager } from '@kit.AbilityKit'; 268import { BusinessError } from '@kit.BasicServicesKit'; 269 270let observerId = 100; 271 272try { 273 errorManager.off('error', observerId) 274 .then((data) => { 275 console.info('----------- unregisterErrorObserver success ----------', data); 276 }) 277 .catch((err: BusinessError) => { 278 console.error('----------- unregisterErrorObserver fail ----------', err); 279 }); 280} catch (paramError) { 281 let code = (paramError as BusinessError).code; 282 let message = (paramError as BusinessError).message; 283 console.error(`error: ${code}, ${message}`); 284} 285``` 286 287## errorManager.on('loopObserver')<sup>12+</sup> 288 289on(type: 'loopObserver', timeout: number, observer: LoopObserver): void 290 291注册主线程消息处理耗时监听器。注册后可以捕获到应用主线程处理消息的具体执行时间。 292 293**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 294 295**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 296 297**参数:** 298 299| 参数名 | 类型 | 必填 | 说明 | 300| -------- | -------- | -------- | -------- | 301| type | string | 是 | 填写'loopObserver',表示注册主线程消息处理耗时监听器。 | 302| timeout | number | 是 | 表示事件执行阈值(单位:毫秒)。 阈值必须大于0。 | 303| observer | [LoopObserver](js-apis-inner-application-loopObserver.md) | 是 | 注册主线程消息处理耗时监听器。 | 304 305**错误码**: 306 307以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 308 309| 错误码ID | 错误信息 | 310| ------- | -------- | 311| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 312 313**示例:** 314 315```ts 316import { errorManager } from '@kit.AbilityKit'; 317 318let observer: errorManager.LoopObserver = { 319 onLoopTimeOut(timeout: number) { 320 console.info('Duration timeout: ' + timeout); 321 } 322}; 323 324errorManager.on("loopObserver", 1, observer); 325``` 326 327## errorManager.on('globalUnhandledRejectionDetected')<sup>18+</sup> 328 329on(type: 'globalUnhandledRejectionDetected', observer: GlobalObserver): void 330 331在进程中任一线程注册被拒绝promise监听器,注册后可以捕获到当前进程中未被捕获到的promise rejection。 332 333**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 334 335**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 336 337**参数:** 338 339| 参数名 | 类型 | 必填 | 说明 | 340|-----------------------|-------------------------------------------------------------| -------- |------------------------------------------| 341| type | string | 是 | 填写'globalUnhandledRejectionDetected',表示注册被拒绝promise监听器。 | 342| observer | [GlobalObserver](#globalobserver18) | 是 | 注册被拒绝promise的callback。 | 343 344**错误码**: 345 346以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 347 348| 错误码ID | 错误信息 | 349| ------- | -------- | 350| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 351| 16200001 | If the caller is invalid. | 352 353**示例:** 354 355```ts 356import { errorManager } from '@kit.AbilityKit'; 357 358function promiseFunc(observer: errorManager.GlobalError) { 359 console.info("result name :" + observer.name); 360 console.info("result message :" + observer.message); 361 console.info("result stack :" + observer.stack); 362 console.info("result instanceName :" + observer.instanceName); 363 console.info("result instaceType :" + observer.instanceType); 364} 365 366errorManager.on("globalUnhandledRejectionDetected", promiseFunc); 367// 建议在抛出promise异常时,使用async抛出异常。 368async function throwError() { 369 throw new Error("uncaught error"); 370} 371 372let promise1 = new Promise<void>(() => {}).then(() => { 373 throwError(); 374}); 375``` 376 377## errorManager.on('unhandledRejection')<sup>12+</sup> 378 379on(type: 'unhandledRejection', observer: UnhandledRejectionObserver): void 380 381注册被拒绝promise监听器。注册后可以捕获到当前线程中未被捕获到的promise rejection。 382 383**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 384 385**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 386 387**参数:** 388 389| 参数名 | 类型 | 必填 | 说明 | 390|-----------------------|-------------------------------------------------------------| -------- |------------------------------------------| 391| type | string | 是 | 填写'unhandledRejection',表示注册被拒绝promise监听器。 | 392| observer | [UnhandledRejectionObserver](#unhandledrejectionobserver12) | 是 | 注册被拒绝promise监听器。 | 393 394**错误码**: 395 396以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 397 398| 错误码ID | 错误信息 | 399| ------- | -------- | 400| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 401| 16200001 | If the caller is invalid. | 402 403**示例:** 404 405```ts 406import { errorManager } from '@kit.AbilityKit'; 407 408let observer: errorManager.UnhandledRejectionObserver = (reason: Error, promise: Promise<void>) => { 409 if (promise === promise1) { 410 console.info("promise1 is rejected"); 411 } 412 console.info("reason.name: ", reason.name); 413 console.info("reason.message: ", reason.message); 414 if (reason.stack) { 415 console.info("reason.stack: ", reason.stack); 416 } 417}; 418 419errorManager.on("unhandledRejection", observer); 420 421let promise1 = new Promise<void>(() => {}).then(() => { 422 throw new Error("uncaught error"); 423}); 424``` 425## errorManager.on('freeze')<sup>18+</sup> 426 427on(type: 'freeze', observer: FreezeObserver): void 428 429注册应用主线程freeze监听。只能在主线程调用,多次注册后,后一次的注册会覆盖前一次的。 430 431**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 432 433**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 434 435**参数:** 436 437| 参数名 | 类型 | 必填 | 说明 | 438| -------- | -------- | -------- | -------- | 439| type | string | 是 | 填写'freeze',表示应用主线程freeze观察器。 | 440| observer | [FreezeObserver](#freezeobserver18) | 是 | 由on接口注册的freeze监听的callback。 | 441 442**错误码**: 443 444以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 445 446| 错误码ID | 错误信息 | 447| ------- | -------- | 448| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 449 450**示例:** 451 452```ts 453import { errorManager } from '@kit.AbilityKit'; 454 455function freezeCallback() { 456 console.info("freezecallback"); 457} 458errorManager.on("freeze", freezeCallback); 459``` 460 461## errorManager.off('loopObserver')<sup>12+</sup> 462 463off(type: 'loopObserver', observer?: LoopObserver): void 464 465注销主线程消息处理监听器。 466 467**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 468 469**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 470 471**参数:** 472 473| 参数名 | 类型 | 必填 | 说明 | 474| -------- | -------- | -------- | -------- | 475| type | string | 是 | 填写'loopObserver',表示应用主线程观察器。 | 476| observer | [LoopObserver](js-apis-inner-application-loopObserver.md) | 否 | 应用主线程观察器标志。 | 477 478**错误码**: 479 480以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。 481 482| 错误码ID | 错误信息 | 483| ------- | -------- | 484| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 485 486**示例:** 487 488```ts 489import { errorManager } from '@kit.AbilityKit'; 490 491errorManager.off("loopObserver"); 492``` 493 494## errorManager.off('globalUnhandledRejectionDetected')<sup>18+</sup> 495 496off(type: 'globalUnhandledRejectionDetected', observer?: GlobalObserver): void 497 498注销被拒绝promise监听器,注销后无法监听进程中的promise异常。 499 500如果传入的回调不在通过on方法注册的回调队列中,将抛出16300004错误码,因此建议使用try-catch逻辑进行处理。 501 502**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 503 504**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 505 506**参数:** 507 508| 参数名 | 类型 | 必填 | 说明 | 509|-----------------------|---------------------------------|----|----------------------------------------------| 510| type | string | 是 | 填写'globalUnhandledRejectionDetected',表示注册被拒绝promise监听器。 | 511| observer | [GlobalObserver](#globalobserver18) | 否 | 由on接口注册的被拒绝promise的callback。建议使用该参数,缺省时默认清除所有通过on注册的相同env的callback,否则删除指定callback。 | 512 513**错误码**: 514 515以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 516 517| 错误码ID | 错误信息 | 518| ------- | -------- | 519| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 520| 16200001 | If the caller is invalid. | 521| 16300004 | If the observer does not exist. | 522 523**示例:** 524 525```ts 526import { errorManager } from '@kit.AbilityKit'; 527 528function promiseFunc(observer: errorManager.GlobalError) { 529 console.info("result name :" + observer.name); 530 console.info("result message :" + observer.message); 531 console.info("result stack :" + observer.stack); 532 console.info("result instanceName :" + observer.instanceName); 533 console.info("result instaceType :" + observer.instanceType); 534} 535 536errorManager.on("globalUnhandledRejectionDetected", promiseFunc); 537 538async function throwError() { 539 throw new Error("uncaught error"); 540} 541 542let promise1 = new Promise<void>(() => {}).then(() => { 543 throwError(); 544}); 545 546errorManager.off("globalUnhandledRejectionDetected", promiseFunc); 547``` 548 549## errorManager.off('unhandledRejection')<sup>12+</sup> 550 551off(type: 'unhandledRejection', observer?: UnhandledRejectionObserver): void 552 553注销被拒绝promise监听器。 554 555**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 556 557**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 558 559**参数:** 560 561| 参数名 | 类型 | 必填 | 说明 | 562|-----------------------|---------------------------------|----|----------------------------------------------| 563| type | string | 是 | 填写'unhandledRejection',表示注册被拒绝promise监听器。 | 564| observer | [UnhandledRejectionObserver](#unhandledrejectionobserver12) | 否 | 注册了被拒绝promise监听器。建议使用该参数,缺省时默认清除所有通过on注册的相同env的observer,否则删除指定observer。 | 565 566**错误码**: 567 568以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 569 570| 错误码ID | 错误信息 | 571| ------- | -------- | 572| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3. Parameter verification failed. | 573| 16200001 | If the caller is invalid. | 574| 16300004 | If the observer does not exist. | 575 576**示例:** 577 578```ts 579import { errorManager } from '@kit.AbilityKit'; 580 581let observer: errorManager.UnhandledRejectionObserver = (reason: Error, promise: Promise<void>) => { 582 if (promise === promise1) { 583 console.info("promise1 is rejected"); 584 } 585 console.info("reason.name: ", reason.name); 586 console.info("reason.message: ", reason.message); 587 if (reason.stack) { 588 console.info("reason.stack: ", reason.stack); 589 } 590}; 591 592errorManager.on("unhandledRejection", observer); 593 594let promise1 = new Promise<void>(() => {}).then(() => { 595 throw new Error("uncaught error") 596}) 597 598errorManager.off("unhandledRejection"); 599``` 600或者 601```ts 602import { errorManager } from '@kit.AbilityKit'; 603 604let observer: errorManager.UnhandledRejectionObserver = (reason: Error, promise: Promise<void>) => { 605 if (promise === promise1) { 606 console.info("promise1 is rejected"); 607 } 608 console.info("reason.name: ", reason.name); 609 console.info("reason.message: ", reason.message); 610 if (reason.stack) { 611 console.info("reason.stack: ", reason.stack); 612 } 613}; 614 615errorManager.on("unhandledRejection", observer); 616 617let promise1 = new Promise<void>(() => {}).then(() => { 618 throw new Error("uncaught error") 619}) 620 621errorManager.off("unhandledRejection", observer); 622``` 623 624## errorManager.off('freeze')<sup>18+</sup> 625 626off(type: 'freeze', observer?: FreezeObserver): void 627 628取消以前注册的应用主线程freeze监听。只能在主线程调用。 629 630如果传入的回调与通过on方法注册回调不一致,将抛出16300004错误码,因此建议使用try-catch逻辑进行处理。 631 632**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 633 634**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 635 636**参数:** 637 638| 参数名 | 类型 | 必填 | 说明 | 639| -------- | -------- | -------- | -------- | 640| type | string | 是 | 填写'freeze',表示应用主线程freeze观察器。 | 641| observer | [FreezeObserver](#freezeobserver18) | 否 | 由on接口注册的freeze监听的callback。建议使用该参数,如果参数不填会直接清空callback,否则删除指定的callback。 | 642 643**错误码**: 644 645以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 646 647| 错误码ID | 错误信息 | 648| ------- | -------- | 649| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.| 650| 16300004 | If the observer does not exist. | 651 652**示例:** 653 654```ts 655import { errorManager } from '@kit.AbilityKit'; 656 657function freezeCallback() { 658 console.info("freezecallback"); 659} 660errorManager.on("freeze", freezeCallback); 661errorManager.off("freeze", freezeCallback); 662``` 663 664## ErrorObserver 665 666type ErrorObserver = _ErrorObserver.default 667 668ErrorObserver模块。 669 670**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 671 672**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 673 674| 类型 | 说明 | 675| --- | --- | 676| [_ErrorObserver.default](js-apis-inner-application-errorObserver.md) | ErrorObserver模块。 | 677 678## LoopObserver<sup>12+</sup> 679 680type LoopObserver = _LoopObserver 681 682LoopObserver模块。 683 684**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 685 686**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 687 688| 类型 | 说明 | 689| --- | --- | 690| [_LoopObserver](js-apis-inner-application-loopObserver.md) | LoopObserver模块。 | 691 692## UnhandledRejectionObserver<sup>12+</sup> 693 694type UnhandledRejectionObserver = (reason: Error | any, promise: Promise\<any>) => void 695 696定义异常监听,用于捕获Promise异步操作失败的原因。 697 698**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 699 700**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 701 702**参数:** 703 704| 参数名 | 类型 | 必填 | 说明 | 705|--------|---------------|---| -------- | 706| reason | Error \| any | 是 | 通常是`Error`类型,表示被拒绝的理由。 | 707| promise | Promise\<any> | 是 | 被拒绝的promise。 | 708 709## FreezeObserver<sup>18+</sup> 710 711type FreezeObserver = () => void 712 713定义应用主线程freeze回调,用于应用自定义添加freeze信息。 714 715**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 716 717**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 718 719## GlobalObserver<sup>18+</sup> 720 721type GlobalObserver = (reason: GlobalError) => void 722 723定义异常监听,可以作为[errorManager.on('globalErrorOccurred')](#errormanageronglobalerroroccurred18)和[errorManager.on('globalUnhandledRejectionDetected')](#errormanageronglobalunhandledrejectiondetected18)的入参监听当前应用主线程事件处理事件。 724 725**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 726 727**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 728 729**参数:** 730 731| 参数名 | 类型 | 必填 | 说明 | 732|--------| ------------- | ---- | --- | 733| reason | [GlobalError](#globalerror18) | 是 | 有关异常事件名字、消息、错误堆栈信息、异常线程名称和类型的对象。 | 734 735## GlobalError<sup>18+</sup> 736 737有关异常事件名字、消息、错误堆栈信息、异常线程名称和类型的对象。 738 739**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 740 741**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 742 743| 名称 | 类型 | 只读 | 可选 | 说明 | 744| ---- | ----- | ---- | ----- | ------ | 745| instanceName | string | 否 | 否 | 表示虚拟机实例名称。 | 746| instanceType | [InstanceType](#instancetype18) | 否 | 否 | 表示虚拟机的实例类型。 | 747 748## InstanceType<sup>18+</sup> 749 750虚拟机的实例类型。 751 752**原子化服务API**:从API version 18开始,该接口支持在原子化服务中使用。 753 754**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 755 756| 名称 | 值 | 说明 | 757| ---- | --- | ------ | 758| MAIN | 0 | 表示主虚拟机实例。 | 759| WORKER | 1 | 表示工作虚拟机实例。 | 760| TASKPOOL | 2 | 表示任务池虚拟机实例。 | 761| CUSTOM | 3 | 表示用户通过[napi_create_ark_runtime](../native-lib/napi.md#napi_create_ark_runtime)从本机代码创建的虚拟机实例。 | 762