用途:这是一份关于 Web 应用错误处理模式的说明文档,核心观点是错误处理不只是防崩溃,而是决定用户看到什么、哪些可重试、保留哪些状态、记录什么日志,以及何时快速失败、何时优雅降级。
主要能力:按错误类型区分处理,包括校验、网络、授权(401/403)、服务器(500)、未找到、冲突、渲染崩溃、后台失败。按层级处理:组件/内联层适合表单校验与单条记录重试;页面/路由层适合数据加载失败、拒绝访问、未找到;应用/全局层适合未捕获渲染崩溃与启动失败;服务/后端层适合统一错误响应、映射依赖错误、加入请求 ID。
统一错误结构:建议将错误映射为一致形状,如 code、message、retryable、statusCode、requestId,便于各组件一致解读。
用户界面与恢复:错误信息应说明失败内容与可否重试,避免内部术语;按影响范围选择内联、页面级、Toast 或全屏兜底。失败时尽量保留用户输入、草稿与导航上下文。重试仅适用于瞬时失败(网络超时、临时 5xx、不稳定第三方调用),不适用于校验、权限、格式错误;重试应使用退避与上限,并考虑幂等性。
错误边界:可隔离渲染崩溃,提供路由级或组件级兜底,但不会自动捕获 effect、请求、事件处理器中的异步错误,异步流程需显式建模 loading、success、empty、error、retrying、stale 等状态。
优雅降级:刷新失败时展示缓存数据、禁用单个高级组件、实时更新降级为轮询、部分后端故障时提供静态或过期内容。
其他要点:变更操作需保留输入、就近显示错误、必要时回滚乐观状态、不可静默失败;401 与 403 需区分处理并避免重定向循环;错误应可感知、可导航,提交后聚焦错误摘要或首个无效字段,动态错误用 live region 播报,不单靠颜色;重要失败应采集错误码、路由、版本、请求 ID、重试次数等可观测数据。文档还列出常见反模式与决策指南。
限制:资料未提供具体安装命令、代码包或平台支持信息。