异常和错误的诊断方法
调试是应用开发中关键的一个环节,学习在出现错误、异常等情况下,如何观察现象、定位错误、修复问题,是开发者的基本素质。调试大致分为以下步骤:复现问题、观察现象、提出猜想、验证猜想。
调试通用流程
- 复现问题:尝试在相同操作路径下复现问题,确认是否为偶发或持续性问题。
- 观察现象:
- UI 层:组件样式、布局、交互是否符合预期
- 前端状态层:变量、数据流是否正常,是否有前端报错
- 请求层:请求体和响应体是否符合预期,是否有网络错误
- 数据库层:数据、模型、约束、关联等是否正确
- 提出猜想:分析信息,推测原因,也可让 AI 协助分析。
- 验证猜想:修改配置后再次运行,观察问题是否解决。
编辑时错误
典型表现
- 编辑器右上角错误图标有数字显示。
处理办法
- 点击“去修复”跳转到错误位置,根据报错提示修改。
- 常见类型:
- 类型错误:如字段需为 Int 类型却填入字符串。
- 例:原价字段填“1元”导致类型错误,需去掉“元”仅填数值。
- 必填项缺失:
- 类型错误:如字段需为 Int 类型却填入字符串。
部署和发布时错误
典型表现
- 更新预览报错
- 后端部署失败
更新预览报错处理
- 查看错误信息(如有)
- 根据错误信息处理,看不懂可咨询 AI
- 上报官方处理


后端更新失败处理
直接点击上报,官方会协助处理。
线上 UI 显示异常
典型表现
- 编辑器上高度对齐的组件在预览后未对齐,或宽度正常的组件在手机端超出屏幕。
处理办法
检查组件 UI 设计配置
-
相对布局与绝对布局在不同宽度容器下可能出现对齐问题。
-
在宽度 375 的机型上显示正常,宽度 430 时绝对布局会偏移。
-
文本超出视图组件:可将视图组件“溢出”配置为“隐藏”或“滚动”。
-
编辑器上组件平齐,手机端未对齐,若配置无误可能为平台 bug,可反馈官方。
请求异常
典型表现
- 报错:行为流调用失败、API 执行失败、内置行为报错等
- 异常:运行结果不符业务预期
处理办法
1. 根据错误信息快速处理
- 前往请求错误对照表检查对应错误及处理方式
- 也可让 AI 帮助分析错误信息,参考如下提示词:
你是一位精通 PostgreSQL 数据库和 GraphQL API 的开发专家。你的任务是:
1. 分析请求信息:检查 GraphQL 请求语法、目标、数据库返回的错误信息。
2. 识别错误类型和原因:如语法错误、类型错误、数据库约束冲突等。
3. 提供详细的错误描述和解决方案。
4. 输出格式要求:
- 明确是否存在错误
- 列出错误及解决方案
- 格式:**错误描述:** [描述] **解决方案:** [方案]
5. 具体信息:
- StatementCallback; ERROR: duplicate key value violates unique constraint "unique_blog_m8fifp2i"\n Detail: Key (title)=(1) already exists.
2. 找到错误或异常的请求
-
小程序:右上角菜单 > 开发调试 > vConsole,查看 request 和 result
-
网页:F12 或右键“检查” > Network,查找 graphql-v2 请求
-
日志:编辑器右上角“日志”功能,更多内容见日志服务
3. 分析请求内容
- 请求体(Request body)
- 包含发送请求的关键信息,可在小程序“request”或浏览器“Payload”中查看。
- 例:
{
"query": "query blogArticleList_82df5ec2($where: blog_article_bool_exp!, $orderBy: [blog_article_order_by!]!) {blog_article ( where: $where order_by: $orderBy limit: 2) { id \n title}\n\n}",
"variables": {
"where": { "title": { "_like": "%AI%" } },
"orderBy": [ { "created_at": "asc_nulls_last" } ]
}
}
- 响应体(Response body)
- 包含请求返回结果,可在小程序“result”或浏览器“Response”中查看。
- 如报错,可在“Response”找到”errors”,如:
{
"data": null,
"errors": [
{
"errorCode": 403,
"extensions": {
"classification": "TABLE_ACCESS"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "User 1 has no permission for SELECT on order",
"operation": "order",
"path": [
"order"
]
}
]
}
4. 猜测原因、尝试修复
- 检查请求体与编辑器配置是否一致
- 检查响应体是否有错误,结果是否符合预期
- 获取足够信息后,尝试修复
- 无法分析时可将信息发给 AI 协助
参考案例
- 支付、退款执行错误:如日志显示权限配置错误,检查角色权限
- 小程序 API 执行错误:如参数字段需非空文本但传了 null


- 行为流执行失败:如字段名拼写错误导致失败
- 更改表数据错误:如插入重复值导致唯一约束冲突
- 条件式容器显示异常:如 name 字段值与预期不符
技术支持和参考资料
- 平台帮助文档:查阅官方“常见问题”章节,获取针对性解决方案。
- 社区支持:社区 发帖或群内提问,附项目ID、复现步骤、截图及日志。
💡
正确提问姿势: 详细描述并附截图可提升回复效率。
示例:
- 期待的效果
- 已尝试方法
- 错误页面及组件
- 错误信息或截图
错误提问示范: “为什么预览报错了” “怎么做一个商城?”
- 购买官方技术支持:在个人中心购买专属技术支持
Last updated on