• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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