SuperAPI AI 工具集

erpnext-errors-api

编程与开发

查看项目

更新于 10-16 06:18

技能介绍

用途:为 ERPNext/Frappe v14/v15/v16 的 API 开发提供错误处理模式,涵盖白名单方法错误、REST API 错误、客户端错误处理与外部集成异常。语法细节可参考 erpnext-api-patterns。

主要能力:给出错误发生位置的判断路径——服务端 Python 中校验错误用 frappe.throw() 并附清晰消息,权限错误配合 PermissionError,未找到配合 DoesNotExistError,意外错误则记录日志并向客户端返回通用错误;客户端 JavaScript 中 frappe.call 使用 error 回调或 .catch(),frappe.xcall 使用 async/await 的 try/catch;外部集成使用 requests 库配合 try/except 捕获特定异常。同时提供 HTTP 状态码对照:200 成功、400 校验错误、403 权限拒绝、404 文档不存在、417 frappe.throw() 触发、500 未处理异常。

使用方式:服务端示例展示基础白名单方法中先校验输入、再捕获 DoesNotExistError 与 PermissionError;批量操作示例用 results 的 success/failed 结构实现部分失败,并调用 frappe.db.commit()。客户端示例展示 frappe.call 的 callback 与 error 回调,以及 frappe.xcall 的 async/await 写法。外部 API 示例用 requests.post 配合 timeout、raise_for_status,并分别捕获 Timeout、HTTPError、RequestException,通过 frappe.log_error 记录后 frappe.throw 返回用户友好消息。

关键规则:始终先校验输入,用户可见错误用 frappe.throw(),意外错误用 frappe.log_error() 记录,API 返回结构化响应,回调中同时处理成功与错误;不要向用户暴露内部错误细节,不要捕获异常却不记录,不要返回原始异常消息,不要假设 API 调用一定成功,不要跳过输入校验。

参考文件:patterns.md 详细错误处理模式,examples.md 完整可运行示例,anti-patterns.md 常见错误。相关技能:erpnext-api-patterns、erpnext-syntax-whitelisted、erpnext-errors-serverscripts。

限制:资料未提供安装命令、收费方式、平台支持范围与具体版本差异说明。