要快速理清陌生项目中异常的捕获、转换、透传和呈现,需用Codex沿真实调用链定位:第一步锁定触发现场并提供具体异常现象;第二步通过堆栈反推或扫描全局处理器追踪流向;第三步验证处理逻辑并给出最小改动补丁。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要快速理清陌生项目中异常是如何被捕获、转换、透传和最终呈现的,不能从零翻日志或猜try-catch位置,必须让Codex沿着真实调用链定位异常处理节点。
第一步:锁定异常触发现场
在Codex CLI中执行:codex read --project . --ignore node_modules。这一步强制它解析package.json、tsconfig.json、入口文件及所有error相关配置,生成上下文图谱;若输出卡在“scanning node_modules”,说明漏加--ignore参数,会浪费token且延迟建模。
等待出现“Context built: X files indexed, Y modules resolved”后,立刻提问:“请找出项目中最常抛出Error的地方,例如API请求失败、表单校验不通过、路由加载异常——列出对应文件路径、错误构造方式(如throw new Error、reject、Promise.reject)、以及是否被上层统一捕获。”
【关键前提】必须提供一个具体异常现象,比如“用户登录时401响应未跳转到登录页”或“提交订单后控制台报‘Cannot read property ‘id’ of undefined’”,否则Codex会泛泛罗列所有可能的throw点,失去定位价值。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
第二步:追踪异常流向
方法一:从报错堆栈反向推导
复制浏览器控制台完整stack trace(含文件名、行号、错误类型),粘贴进Codex并加前缀:
【Goal】还原该异常从抛出到展示的完整路径;
【Context】项目使用Axios + React Query + Toast组件;
【Constraints】只分析src目录下代码,忽略mock和test文件;
【Done when】指出异常是否经过interceptor→query.onError→UI层Toast三段,每段对应哪个函数/文件。
方法二:从全局错误处理器正向扫描
让Codex搜索以下典型入口:
• window.addEventListener('error') / 'unhandledrejection'
• createRoot().render()外层的error boundary组件
• Axios.create()配置中的response interceptor
• React Query的defaultOptions中的onError回调
• Next.js的global-error.tsx或getServerSideProps中的error处理块
它返回的结果必须区分三类关系:明确调用的(如interceptor里写了throw err)、由配置决定的(如queryClient配置了默认onError但未显式传入)、尚未确认的(如某个util函数里有if (err) throw,但没找到调用方)。
第三步:验证异常处理是否生效
① 找到一个已知会触发异常的测试路径,例如故意把API地址改成404,观察前端行为;
② 让Codex对比两个场景:a)当前异常发生时实际走过的处理节点;b)若想让错误显示为带重试按钮的Toast,应在哪个环节插入逻辑;
③ 要求它给出最小改动位置——不是“改整个错误系统”,而是“只需在src/lib/apiClient.ts第38行catch块末尾加toast.error(err.message)”;
④ 检查它是否识别出该toast依赖是否已导入,若未识别,需手动补import { toast } from 'react-toastify';
⑤ 运行codex diff查看补丁是否仅影响目标行、是否破坏原有错误透传逻辑(如误删了reject(err)导致Promise链中断)。















