28 lines
1.1 KiB
Markdown
28 lines
1.1 KiB
Markdown
|
|
# Skill:错误处理(Android)
|
|||
|
|
|
|||
|
|
与具体业务无关的 Android 错误展示设计:错误类型、友好文案与组件。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 错误类型
|
|||
|
|
|
|||
|
|
- **ErrorType** 枚举:NETWORK、SERVER、TIMEOUT、AUTH、NOT_FOUND、VALIDATION、UNKNOWN。
|
|||
|
|
|
|||
|
|
## ErrorHandler
|
|||
|
|
|
|||
|
|
- `getFriendlyError(errorType, originalMessage)`:生产环境返回友好文案,开发环境可带出 `originalMessage`(如 VALIDATION)。
|
|||
|
|
- `detectErrorType(exception)`:根据异常 message 关键词推断类型。
|
|||
|
|
- `detectErrorTypeByStatusCode(statusCode)`:401/403→AUTH,404→NOT_FOUND,5xx→SERVER 等。
|
|||
|
|
- `getDisplayMessage` / `handleException`:统一得到最终展示文案。
|
|||
|
|
|
|||
|
|
## 组件
|
|||
|
|
|
|||
|
|
- **FriendlyErrorView**:全屏错误页,图标+标题+描述+重试/去登录按钮,可选动画。
|
|||
|
|
- **FriendlyErrorDialog**:弹窗版,带确认/取消或重试。
|
|||
|
|
- **InlineErrorMessage**:表单等内联错误,生产环境对部分技术性文案做友好替换。
|
|||
|
|
- **Snackbar**:`showFriendlyError` 扩展,用于轻量提示。
|
|||
|
|
|
|||
|
|
## 约定
|
|||
|
|
|
|||
|
|
- 生产环境不直接暴露后端异常原文;开发环境可通过 `AppConfig.isDebugMode` 显示原始信息。
|