ohos.application.error_observer

说明:

当前为Beta阶段。

error_observer模块定义异常监听,可以作为ErrorManager.on的入参监听当前应用发生的异常。

导入模块

import kit.AbilityKit.*

权限列表

ohos.permission.DISTRIBUTED_DATASYNC

ohos.permission.PREPARE_APP_TERMINATE

ohos.permission.PRIVACY_WINDOW

使用说明

API示例代码使用说明:

  • 若示例代码首行有“// index.cj”注释,表示该示例可在仓颉模板工程的“index.cj”文件中编译运行。
  • 若示例需获取Context应用上下文,需在仓颉模板工程中的“main_ability.cj”文件中进行配置。

上述示例工程及配置模板详见仓颉示例代码说明

class ErrorObject

public class ErrorObject {
    public let name: String
    public let message: String
    public let stack: Option<String>
}

功能: 包含异常事件名字、消息和错误堆栈信息的对象。

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

起始版本: 22

let message

public let message: String

功能: 异常事件的信息。

类型: String

读写能力: 只读

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

起始版本: 22

let name

public let name: String

功能: 异常事件的名称。

类型: String

读写能力: 只读

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

起始版本: 22

let stack

public let stack: Option<String>

功能: 异常事件的错误堆栈信息。

类型: Option<String>

读写能力: 只读

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

起始版本: 22

class ErrorObserver

public class ErrorObserver {
    public var onUnhandledException:(String) -> Unit
    public var onException: Option <(ErrorObject) -> Unit>
    public init(
        onUnhandledException: (String) -> Unit,
        onException!: Option<(ErrorObject) -> Unit> = None
    )
}

功能: 异常监听模块。

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

起始版本: 22

var onException

public var onException: Option <(ErrorObject) -> Unit>

功能: 应用产生异常,上报仓颉层时的回调。

类型: Option<(ErrorObject)->Unit>

读写能力: 可读写

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

起始版本: 22

var onUnhandledException

public var onUnhandledException:(String) -> Unit

功能: 应用产生未捕获的异常时的回调。

类型: (String)->Unit

读写能力: 可读写

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

起始版本: 22

init((String) -> Unit, Option<(ErrorObject) -> Unit>)

public init(
    onUnhandledException: (String) -> Unit,
    onException!: Option<(ErrorObject) -> Unit> = None
)

功能: 构建异常监听类。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
onUnhandledException (String)->Unit - 应用产生未捕获的异常时的回调。
onException Option<(ErrorObject)->Unit> None 命名参数。 应用产生异常,上报仓颉层时的回调。

示例:

// index.cj

import kit.AbilityKit.*
import ohos.business_exception.BusinessException
import kit.PerformanceAnalysisKit.Hilog

try {
    let observer = ErrorObserver(
        {
            errorMsg =>
                Hilog.info(0, "test_errorManager", "onUnhandledException, errorMsg:  =${errorMsg}")
        },
        onException: Some({ errorObj =>
            Hilog.info(0, "test_errorManager", "onException, name:   =${errorObj.name}")
            Hilog.info(0, "test_errorManager", "onException, message:   =${errorObj.message}")
            if (let Some(v) <-errorObj.stack) {
                Hilog.info(0, "test_errorManager", "onException, stack:    =${v}")
            }
        })
    )
    let id = ErrorManager.on(ErrorManagerEvent.Error, observer)
} catch (e: BusinessException) {
    Hilog.info(0, "test", "${e.message}")
}