# 18.11:异常捕获

ArkUI 开发框架在 @ohos.app.ability.errorManager 模块里提供了对错误观察器的注册和注销的能力。当程序出现了未捕获的异常时,可以通过注册全局异常观察器的方式捕获这些异常,有了异常信息后可以采取上报服务器的方式便于我们后续修复异常。

# 18.11.1:errorManager使用

捕获全局异常直接使用 @ohos.app.ability.errorManager 模块提供的方法即可:

  • 引入errorManager

    import errorManager from '@ohos.app.ability.errorManager';
    
    1
  • 使用errorManager

    private registerErrorObserver() {
      errorManager.on("error", {
        onUnhandledException(error: string) {
          console.log("UnHandled Exception: " + error)
        }
      })
    }
    
    1
    2
    3
    4
    5
    6
    7

# 18.11.2:完整样例

FA 模型下直接在 app.etsonCreate() 方法中注册异常监听器,在 Stage 模型下,可以直接在自定义的 AbilityStageonCreate() 方法中注册异常监听器,以 Stage 模型为例,代码如下:

import AbilityStage from '@ohos.app.ability.AbilityStage';
import errorManager from '@ohos.app.ability.errorManager';

export default class MainAbilityStage extends AbilityStage {
  onCreate() {
    console.log("onCreate()")

    // 注册异常监听器
    this.registerErrorObserver()
  }

  private registerErrorObserver() {
    errorManager.on("error", {
      onUnhandledException(error: string) {
        console.log("unHandled Exception: " + error)
        // TODO:后续上报服务器
      }
    })
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
请作者喝杯咖啡

津公网安备 12011402001367号

津ICP备2020008934号-2