SuperAPI AI 工具集

frappe-errors-clientscripts

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:该技能面向 Frappe 框架客户端脚本(Client Scripts)的排错与预防,帮助定位空值访问、调用失败、异步异常、字段时序和递归触发等常见问题。资料以错误诊断流程图、错误信息对照表和正误代码示例组织内容。

主要能力:覆盖 TypeError(frm.doc.fieldname 字段不存在、r.message.value 返回空、子表行未取到)、frappe.call 静默失败(缺 error 回调、403 未白名单、417 服务端 frappe.throw、401 会话或 CSRF 问题)、Promise 未捕获、set_value 后字段空白、cur_frm is undefined、frappe.throw 未阻止保存,以及子表字段名错误、row.item_code 为空、set_value 无效、超出最大调用栈等场景。

必要用法与规则:始终使用事件处理器的 frm 参数而不使用 cur_frm;异步 frappe.call 用 try/catch 包裹并判断 r.message 是否为空;面向用户的字符串用 __() 包裹;frappe.throw() 只放在 validate 中才能阻止保存;子表事件用 frappe.get_doc(cdt, cdn) 与 frappe.model.set_value(cdt, cdn, field, value);set_query 放 setup,set_value 放 refresh 或 onload;用 frm.flags 打断递归触发。避免使用 alert/confirm/prompt、避免生产环境留 console.log、避免混用 .then() 与 await。

调试工具:浏览器控制台(console.log(frm.doc)、console.table、JSON.parse(JSON.stringify(frm.doc)))、frappe.boot.developer_mode 条件日志、frappe.ui.toolbar.clear_cache()、Network 面板检查 XHR、frappe.show_alert。

限制:资料为技能说明与示例,未提供具体版本适用范围、安装命令、收费方式或性能指标;相关细节暂未提供。