js-apis-inner-application-errorObserver.md 2.0 KB
Newer Older
M
m00512953 已提交
1 2
# ErrorObserver

H
HuangXW 已提交
3
定义异常监听,可以作为[ErrorManager.on](js-apis-app-ability-errorManager.md#errormanageron)的入参监听当前应用发生的异常。
M
m00512953 已提交
4

H
HuangXW 已提交
5
## ErrorObserver.onUnhandledException
M
m00512953 已提交
6 7 8 9 10 11 12 13

onUnhandledException(errMsg: string): void;

将在js运行时引发用户未捕获的异常时调用。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**
Z
zhongjianfei 已提交
14

M
m00512953 已提交
15 16 17 18 19
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| errMsg | string | 否 | 有关异常的消息和错误堆栈跟踪。 |

**示例:**
Z
zhongjianfei 已提交
20

M
m00512953 已提交
21
```ts
D
donglin 已提交
22
import errorManager from '@ohos.app.ability.errorManager';
M
m00512953 已提交
23 24

let observer = {
25
  onUnhandledException(errorMsg) {
M
mingxihua 已提交
26
    console.error('onUnhandledException, errorMsg: ', errorMsg);
27
  }
M
mingxihua 已提交
28
};
H
HuangXW 已提交
29 30

try {
M
mingxihua 已提交
31
    errorManager.on('error', observer);
H
HuangXW 已提交
32
} catch (error) {
M
mingxihua 已提交
33
    console.error('registerErrorObserver failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
H
HuangXW 已提交
34 35
}
```
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

## ErrorObserver.onException

onException?(errObject: Error): void;

当Native层发生异常事件并且需要通知js层时调用。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| errObject | Error | 否 | 有关于异常事件名字、消息和错误堆栈信息的对象。 |

**示例:**

```ts
import errorManager from '@ohos.app.ability.errorManager';

let observer = {
  onUnhandledException(errorMsg) {
    console.error('onUnhandledException, errorMsg: ', errorMsg);
  }
X
xinking129 已提交
60
  onException(errorObj) {
61 62
    console.log('onException, name: ', errorObj.name);
    console.log('onException, message: ', errorObj.message);
X
xinking129 已提交
63
    if (typeof(errorObj.stack) === 'string') {
64 65 66 67 68 69 70 71 72 73 74
        console.log('onException, stack: ', errorObj.stack);
    }
  }
};

try {
    errorManager.on('error', observer);
} catch (error) {
    console.error('registerErrorObserver failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
}
```