所有函数必须对参数为空、数据库连接失败、HTTP请求超时三类异常提供差异化处理:输入校验失败返回400+字段错误码,API超时降级并WARN日志,唯一键冲突转业务异常;捕获具体异常类如SocketTimeoutException;日志需带traceId且禁用printStackTrace,敏感信息脱敏;错误响应严格遵循指定JSON Schema或公共ErrorResponse类。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让CodeBuddy生成的代码在遇到异常输入、空值、网络超时等边界情况时,不是直接崩溃或抛出原始异常,而是具备明确的错误分类、结构化响应和可追溯的日志埋点,避免上线后因未处理异常导致服务雪崩或排查无据。
明确声明错误类型与兜底策略
在提示词开头就用一句话锚定错误处理基调,例如:“所有函数必须对参数为空、数据库连接失败、HTTP请求超时三类异常提供差异化处理”。这一步不能省——若只写“要处理错误”,CodeBuddy大概率生成统一try-catch+printStackTrace,无法满足生产环境分级告警要求。
方法一:按异常来源分层约束
在需求描述中并列列出三类典型异常及其响应方式,例如:“① 输入校验失败 → 返回400 Bad Request + 详细字段错误码;② 外部API调用超时 → 降级返回缓存数据并记录WARN日志;③ 数据库唯一键冲突 → 捕获SQLIntegrityConstraintViolationException,转为业务异常DuplicateResourceException”。
方法二:绑定具体异常类名
直接写出JVM或Python标准异常类全限定名,强制CodeBuddy识别真实异常链路。例如:“捕获java.net.SocketTimeoutException而非笼统的IOException”,因为后者可能掩盖真正需要重试的网络问题。
强制要求日志与监控埋点位置
不只要求“加日志”,而要指定在哪一行、用什么级别、带哪些MDC字段。否则生成的代码往往只在catch块里写一句logger.error("failed"),丢失上下文。
第一步:在提示词中插入日志规范模板
例如:“每处catch块必须调用logger.warn("order_create_timeout", MDC.get("traceId"), e)”,其中traceId必须从当前线程MDC中提取——这样能确保日志可被APM系统串联。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
第二步:禁止使用System.out.println或e.printStackTrace()
【这是不可逆污染,一旦生成将混入生产代码,必须在提示词中显式禁用】
第三步:要求异常信息脱敏
例如:“日志中禁止打印用户手机号、身份证号、token等敏感字段,需用***替代原始值”,否则CodeBuddy可能直接输出e.getMessage()导致信息泄露。
定义错误响应体结构
如果生成的是Web接口代码,必须让CodeBuddy输出符合团队统一错误格式的响应体,而不是自由发挥返回{"error":"xxx"}或空字符串。
方法一:提供JSON Schema示例
在提示词中粘贴一段真实错误响应样例,例如:“错误响应必须严格遵循以下结构:{"code": "BUSINESS_001", "message": "库存不足", "details": {"skuId": "SK123"}}”。CodeBuddy会据此反向推导DTO类字段和序列化逻辑。
方法二:引用已有公共类
若项目已存在ErrorResponse实体类,直接写:“所有异常响应必须new ErrorResponse().setCode("VALIDATE_002").setMessage("邮箱格式错误")”,避免生成冗余新类。
这一步操作起来很简单,直接把团队内部文档里的错误码表截图文字版复制进提示词就行。

















