用途:帮助在应用各层以一致方式优雅处理错误,适用于 API 错误响应、数据库错误、外部服务失败、校验错误、认证与授权错误。
主要能力:定义结构化错误响应格式,包含 error.code、error.message、error.details 与 requestId;提供自定义错误类(AppError 及 NotFoundError、ValidationError、UnauthorizedError、ForbiddenError、ConflictError、RateLimitError、ExternalServiceError);给出 Express 错误处理中间件、异步处理包装器、服务层错误处理示例;另含 Python dataclass 错误类与 FastAPI 异常处理器示例;前端 api-client 与 ApiError 示例。
必要用法:错误响应统一为 { error: { code, message, details, requestId } }。Express 中间件依据 AppError 返回对应 statusCode;对 Prisma 的 P2002 映射 409 DUPLICATE_ENTRY、P2025 映射 404。FastAPI 侧通过 app.add_exception_handler(AppError, app_error_handler) 注册。生产环境不泄露堆栈,仅返回 Internal server error。
最佳实践与常见错误:使用机器可读错误码、包含 requestId、区分 warn(可操作错误)与 error(程序错误)、统一格式、避免返回堆栈、泛化提示、不记录错误、格式不一致、吞掉异常。
限制:资料未提供具体监控/日志后端、收费、性能数据或平台支持范围,暂未提供。