SuperAPI AI 工具集

can-this-throw

测试与质量

查看项目

更新于 10-16 01:29

技能介绍

用途:回答“这段代码抛出的异常,有没有什么地方都没接住”这一单一问题,覆盖 PR、diff 范围、单个方法或某调用点及其产生的代码。

主要能力:先固定范围,再列出所有抛出来源,包括显式 throw、契约可抛的调用(解析、IO、类型转换、集合访问、参数检查、释放)、可故障的 awaited 任务、代码注册的回调或处理器、构造函数或静态初始化器;随后沿所有调用方逐层向外追踪,直到处理该异常的 catch 或边界(进程入口、线程入口或线程池任务、框架回调与事件处理器、fire-and-forget 任务、静态初始化器或终结器)。在 catch 处说明续行(重试、回退、默认值、降级模式),在边界处说明后果(进程退出、必要线程终止、异常被忽略、由宿主决定)。

结论分三种:(a) 每条路径都被捕获且有续行;(b) 可能使应用失败;(c) 其他情况,如捕获后续行导致状态卡住或半改变、异常被忽略、依赖宿主配置、反射或外部回调等无法确定的情形。混合结果取最坏:任一路径为 (b) 则结论为 (b),否则任一 (c) 则为 (c)。输出先给结论行,再逐条列出每个来源的追踪路径,并填写“Not traced”。

使用方式:该技能通常作为代码判定的一部分先给出结论,例如在 /settle-borrowed-authority 中置于每个代码案例顶部,也可用于评审项或行为问题的前置回答;命名类决策不需要使用。

限制:只回答异常能否逃逸,不涉及修复方案;超过范围的依赖代码需在 Not traced 中说明;资料中未提供安装命令、价格或平台信息。