1# ErrorObserver 2 3定义异常监听,可以作为[ErrorManager.on](js-apis-app-ability-errorManager.md#errormanageronerror)的入参监听当前应用发生的异常。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import { errorManager } from '@kit.AbilityKit'; 13``` 14 15## ErrorObserver.onUnhandledException 16 17onUnhandledException(errMsg: string): void; 18 19将在js运行时引发用户未捕获的异常时调用。 20 21**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 22 23**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 24 25**参数:** 26 27| 参数名 | 类型 | 必填 | 说明 | 28| -------- | -------- | -------- | -------- | 29| errMsg | string | 是 | 有关异常的消息和错误堆栈跟踪。 | 30 31**示例:** 32 33```ts 34import { errorManager } from '@kit.AbilityKit'; 35import { BusinessError } from '@kit.BasicServicesKit'; 36 37let observer: errorManager.ErrorObserver = { 38 onUnhandledException(errorMsg) { 39 console.error('onUnhandledException, errorMsg: ', errorMsg); 40 } 41}; 42 43try { 44 errorManager.on('error', observer); 45} catch (error) { 46 console.error(`registerErrorObserver failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`); 47} 48``` 49 50## ErrorObserver.onException<sup>10+</sup> 51 52onException?(errObject: Error): void; 53 54将在js运行时引发用户未捕获的异常时调用。 55 56**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 57 58**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 59 60**参数:** 61 62| 参数名 | 类型 | 必填 | 说明 | 63| -------- | -------- | -------- | -------- | 64| errObject | Error | 是 | 有关异常事件名字、消息和错误堆栈信息的对象。 | 65 66**示例:** 67 68```ts 69import { errorManager } from '@kit.AbilityKit'; 70import { BusinessError } from '@kit.BasicServicesKit'; 71 72let observer: errorManager.ErrorObserver = { 73 onUnhandledException(errorMsg) { 74 console.error('onUnhandledException, errorMsg: ', errorMsg); 75 }, 76 onException(errorObj) { 77 console.log('onException, name: ', errorObj.name); 78 console.log('onException, message: ', errorObj.message); 79 if (typeof (errorObj.stack) === 'string') { 80 console.log('onException, stack: ', errorObj.stack); 81 } 82 } 83}; 84 85try { 86 errorManager.on('error', observer); 87} catch (error) { 88 console.error(`registerErrorObserver failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`); 89} 90``` 91