LynxError API

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

其中它同时包含机器可读的信息(错误码、错误子码、严重性等)和人工可读的消息。

总览

public int getErrorCode()

返回错误码。错误码是一个 3 到 4 位的数字,用于表示错误的行为。例如 301 表示图片加载错误。你可以通过文档错误码来了解每个错误码代表的错误行为。

getSubCode

public int getSubCode()

返回错误子码。错误子码是一个 5 到 6 位的数字,由错误码拓展 2 位而来。错误子码用于表示错误的原因。例如 30101 表示加载的图片过大。你可以通过文档错误码来了解每个错误子码代表的错误原因。

isFatal

public boolean isFatal()

判断错误的级别是否为 FatalLynxErrorFatalErrorWarn 三种级别,其中 Fatal 表示致命错误,可能导致 Lynx 页面白屏,需要接入方进行降级处理,例如尝试重新加载 Lynx 页面、展示兜底的错误页面等;Error 表示非致命错误,可能导致 Lynx 页面部分功能不可用;Warn 表示警告错误,不影响 Lynx 页面的功能,但仍建议尽量修复。你可以通过文档错误码来了解每个错误子码的错误级别,如果为 Undecided,则代表该错误子码的错误级别在运行时绑定。

getMsg

public boolean getMsg()

以 JSON 字符串的形式返回错误的所有信息,包括错误码、错误子码、错误描述、错误级别、修复建议等。

iOS

errorCode

- (NSInteger)errorCode
属性类型描述
errorCodeint顶级错误码 (e.g. 102)
subCodeint更具体的错误子码 (e.g. 10203)
levelstring严重程度等级: Fatal, Error, Warn, Undecided
msgstring人工可读的错误信息
toString()string完整字串化的错误

用途

  • 在开发或调试中展示错误信息
  • 为致命运行时问题触发兜底 UI 或跳转
  • 上报问题以进行数据分析或 bug 追踪

平台方法

Android

方法返回类型描述
getErrorCode()int返回 errorCode
getSubCode()int返回 subCode
getLevel()String返回严重程度等级
getMsg()String返回错误信息字串
toString()String完整字串化的错误

iOS

属性类型描述
errorCodeNSInteger同上
subCodeNSInteger
levelNSString*
msgNSString*
descriptionNSString*等价于 toString()

错误分级

等级含义建议动作
Fatal应用可能已不可用重新加载或者跳转到兜底 UI
Error可恢复的问题记录日志并重试
Warn非阻碍的警告记录日志并继续
Undecided尚未分类。记录问题并合理处理

示例

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)")
  }
}

兼容性

LCD tables only load in the browser

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