用途:该技能用于在 ERPNext/Frappe 中处理数据库操作引发的异常,帮助开发者按操作类型选择正确的捕获与处理方式。
主要能力:梳理 Frappe 数据库异常类型,包括 frappe.DoesNotExistError(文档未找到)、frappe.DuplicateEntryError(唯一约束冲突)、frappe.LinkExistsError(存在关联文档无法删除)、frappe.ValidationError、frappe.TimestampMismatchError(并发编辑)、frappe.db.InternalError(死锁、连接丢失等)以及 v15+ 的 frappe.QueryTimeoutError。
使用方式:按操作给出处理建议——get_doc/get_cached_doc 可能抛 DoesNotExistError,可先用 frappe.db.exists() 检查或捕获异常;insert 可能抛 DuplicateEntryError 与 ValidationError;save 可能抛 ValidationError 与 TimestampMismatchError;delete_doc 可能抛 LinkExistsError,可用 force=True 忽略关联(需谨慎);frappe.db.sql()/frappe.qb 可能抛 InternalError,必须使用参数化查询;db.set_value()/db_set() 在记录不存在时静默失败且不触发校验。文档还给出安全获取、安全插入、安全删除、并发编辑处理、批量操作错误隔离、安全 SQL 查询等模式,以及事务与保存点、后台任务需显式 frappe.db.commit() 的说明。
适用场景:ERPNext/Frappe 应用开发中的数据库异常处理、并发编辑冲突、批量数据更新与后台任务。
限制:资料未提供具体安装命令、收费信息或平台细节;版本兼容性仅标注 v14/v15/v16。