SuperAPI AI 工具集

error-handling

编程与开发

查看项目

更新于 10-16 04:18

技能介绍

用途

error-handling 是一个专门用于实现错误处理的技能,适用于在开发过程中处理错误、日志记录、用户友好错误提示以及错误恢复策略。根据其描述,当需要实现错误处理相关功能时可以使用该技能。

主要能力

该技能围绕错误处理提供以下内容:

  • 错误处理原则:不向用户暴露技术细节;在服务端记录带上下文的错误日志;提供用户友好的错误消息;使用合适的 HTTP 状态码;在可能的情况下实现错误恢复。
  • 常见模式示例:包括 API 错误处理、校验错误处理、组件错误处理以及错误边界(Error Boundary)。
  • 错误类型与 HTTP 状态码对照:400 Bad Request(无效输入)、401 Unauthorized(未认证)、403 Forbidden(未授权)、404 Not Found(资源不存在)、500 Internal Server Error(服务器错误)、503 Service Unavailable(服务不可用)。
  • 最佳实践:记录带完整上下文的错误;绝不向用户暴露堆栈跟踪;提供可操作的错误消息;对瞬时错误实现重试逻辑;在 React 组件中使用错误边界。

使用方式

该技能以代码示例的形式展示各类错误处理模式:

  1. API 错误处理:在 Next.js 的 API 路由中使用 try/catch,捕获错误后通过 console.error 记录包含 endpoint、error.message、error.stack、timestamp 的上下文信息,并返回用户友好的错误消息与 500 状态码。
  2. 校验错误处理:结合 Zod 定义 schema,使用 schema.parse 解析请求体;当捕获到 z.ZodError 时,返回包含字段路径与消息的 details 以及 400 状态码。
  3. 组件错误处理:在客户端组件中使用 useState 管理错误状态,在异步操作(如加入购物车)失败时设置错误提示并记录日志。
  4. 错误边界:使用 react-error-boundary 的 ErrorBoundary 组件包裹子组件,通过 FallbackComponent 提供错误回退界面,并支持 resetErrorBoundary 重试。

示例中的错误提示文案为西班牙语,例如“Ha ocurrido un error. Por favor, intenta nuevamente.”、“Datos inválidos”、“No se pudo agregar el producto al carrito”、“Algo salió mal”、“Intentar de nuevo”。

适用场景

根据资料,该技能适用于实现错误处理、日志记录、用户友好错误提示与错误恢复策略的场景,示例覆盖 Next.js API 路由、基于 Zod 的输入校验、React 客户端组件以及 React 错误边界。

限制

资料未提供该技能的安装方式、依赖版本、平台支持范围、收费或价格信息,这些内容暂未提供。示例代码基于 Next.js、Zod 与 react-error-boundary,但资料未说明是否支持其他框架或语言。