LynxError API

LynxError 是 Lynx 运行时返回的标准错误对象,用于表示应用运行时的失败、警告或可恢复问题。

它同时包含机器可读的信息(错误码、子错误码、严重级别)和人类可读的信息(错误消息),方便调试与错误处理。

使用场景

  • 在调试或开发模式下显示有意义的错误信息
  • 当出现致命错误时触发回退界面或导航逻辑
  • 将错误上报到分析或错误追踪系统中

核心概念

错误码(Error Code)

错误码是一个 3–4 位数字,用于表示错误的行为或类型。 例如,代码 301 表示图像加载错误。

可参考 错误码文档了解每个错误码的具体含义。

子错误码(Sub Code)

子错误码是一个 5–6 位数字,由错误码扩展而来,用于标识错误的具体原因。 例如,子错误码 30101 表示加载的图像过大。

可参考 错误码文档了解每个子错误码所代表的具体原因。

级别(Level)

LynxError 定义了四种错误级别:FatalErrorWarnUndecided

级别含义建议操作
Fatal应用可能无法继续使用重新加载或显示回退界面
Error可恢复的错误记录日志并重试操作
Warn不阻塞的警告记录日志并继续执行
Undecided尚未分类的错误优雅地处理并记录问题

消息(Message)

所有错误信息以 JSON 字符串的形式表示,包括以下内容:

  • code(错误码)
  • subcode(子错误码)
  • level(错误级别)
  • message(错误消息)
  • suggestion(修复建议,可选)

各平台方法

Android

方法返回类型描述
getErrorCode()int返回错误码
getSubCode()int返回子错误码
getLevel()String返回错误级别
getMsg()String返回错误信息

iOS

属性 / 方法类型描述
errorCodeNSInteger返回错误码
subcodeNSInteger返回子错误码
levelNSString*返回错误级别
userInfo()NSDictionary*返回一个 NSDictionary,可通过键 LynxErrorUserInfoKeyMessage 获取错误消息

HarmonyOS

方法名类型描述
getErrorCode()number返回错误码
getSubCode()number返回子错误码
getLevel()LynxErrorLevel返回错误级别
getMsg()string返回错误信息

示例

JavaScript

lynx.onError((err) => {
  if (err.getLevel() === 'Fatal') {
    // Possibly reload or fallback to home
    console.error('Critical error occurred:', err.getMsg());
  }
});

Kotlin

fun onLynxError(error: LynxError) {
  if (error.level == "Fatal") {
    println("Fatal error: ${error.msg}")
  }
}

Swift

func onLynxError(_ error: LynxError) {
  if error.level == "Fatal" {
    print("Fatal error: \(error.msg)")
  }
}

ETS

onLynxError(error: LynxError) {
  if (error.level == LynxErrorLevel.Fatal) {
    console.error('Fatal error:', error.getMsg());
  }
}

兼容性

LCD tables only load in the browser

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。