---
title: 错误处理
canonical: https://developer.unico.io/zh-CN/dual-api/developers/sdks-and-tools/flutter/error-handling
locale: zh-CN
generated_by: markdown-export
---

Flutter SDK 的所有错误处理均集中在本节。`onErrorUnico`、`onErrorSelfie` 和 `onErrorDocument` 回调会接收一个 `UnicoError` 对象，该对象提供 `getCode()` 和 `getDescription()` 方法。

## 错误代码

| 代码 | 描述 |
|---|---|
| `73001` | 上下文无效 |
| `73002` | 未授予打开摄像头的权限 |
| `73003` | 最低 API 级别为 21 (LOLLIPOP) |
| `73004` | 找不到接口回调实现 `iAcessoBioSelfie` |
| `73005` | 找不到接口回调实现 `iAcessoBioDocument` |
| `73006` | 无法在模拟器上打开摄像头 |
| `73100` | 无法连接到互联网 |
| `73200` | 请提供 JSON 文件名 |
| `73202` | 无法解析 JSON 文件 |
| `73300` | 无法获取 unico 认证对象 |
| `73301` | 无法解析对象 |
| `73302` | 找不到 unico token |
| `73303` | 当前 host 未注册 |
| `73400` | 无法初始化摄像头 |
| `73500` | 无法获取会话 token — 服务响应错误 |
| `73501` | 无法解析对象 |
| `73502` | 无法获取会话 token |
| `73701` | 找不到 active liveness 导入 |
| `73702` | 无法在生产模式下初始化 active liveness |
| `73703` | 无法获取 active liveness 会话 |
| `73704` | 用户按下了取消按钮，未完成会话 |
| `73705` | 会话未成功执行，未生成 FaceScan |
| `73706` | 摄像头访问被拒绝 — 用户明确拒绝了权限，或设备策略阻止了访问 |
| `73707` | 会话因应用被终止、休眠、系统通知或转入后台而取消 |
| `73708` | 会话因设备处于横屏模式而取消 |
| `73709` | 会话因设备处于反向竖屏模式而取消 |
| `73710` | 会话因用户在规定超时时间内未能完成而取消 |
| `73712` | 会话因内存压力取消 / 非生产环境应用需要网络连接 |
| `73713` | 会话因您的密钥需要重新验证而取消 |
| `73714` | 会话因开发者配置的加密密钥无效而取消 |
| `73715` | 会话因未配置所有引导图片而取消 |
| `73716` | 会话因 SDK 无法在此设备上启动摄像头而取消 |
| `73717` | 会话因用户处于锁定状态而取消 |
| `73718` | 正常使用原生 API 时发生未知且意外的错误 |
| `73719` | 会话因用户按下了准备页面的副文本消息而取消 |
| `73800` | 无法构建加密密钥 |

:::secondary[官方错误目录]
上述代码反映了 Flutter SDK 目录。官方跨平台错误代码目录可在 [API 参考 > 错误代码](/dual-api/developers/api-reference/error-codes) 中查看。
:::

## 处理回调

```dart
@override
void onErrorUnico(UnicoError error) {
  final code = error.getCode();
  final description = error.getDescription();
  // handle error
}
```

## 生命周期回调

除 `onErrorUnico` 外，SDK 还会触发以下回调：

- `onUserClosedCameraManually()` — 用户手动关闭了摄像头。
- `onSystemClosedCameraTimeoutSession()` — 会话因超时而过期（默认 40 秒，最小 40 秒）。
- `onSystemChangedTypeCameraTimeoutFaceInference()` — 人脸检测超过 13 秒阈值；捕获切换为手动模式。