目录 / silent-except-hides-schema-drift
SKILL
未评级
已上架
silent-except-hides-schema-drift
在审查或编写包含 `try`/`except Exception:` 子句的 Python 代码时,若该子句围绕 SQL 查询(如 asyncpg、psycopg2、sqlalchemy、sqlite3),且 except 分支存在以下情况之一:(a) 静默返回空集合(如 `signals = []`、`rows = {}`、`data = None`),(b) 以空状态重新渲染 UI(如“无活跃信号”、“今日无数据”),或 (c) 使用裸捕获或过于宽泛的异常类型——且未调用 `logger.exception()` 或重新抛出异常。 风险提示:当发生模式漂移错误(如列不存在、外键目标重命名、ORM 不同步)与合法的空结果在用户看来完全相同时,仪表板面板显示“今日无信号”可能意味着“确实无信号”或“SQL 执行失败但被吞没”。触发短语包括:“仪表板显示为空但数据库有数据”、“except Exception: signals = []”、“仪表板卡片永久为空”、“代码吞没了数据库错误”。 请勿在非数据库相关的静默异常处理、捕获后重新抛出模式,或已记录日志的窄范围 except 子句场景下加载此规则。
模型生成摘要(rules/v1 · 2026-11-15 04:31):在审查或编写包含 `try`/`except Exception:` 子句的 Python 代码时,若该子句围绕 SQL 查询(如 asyncpg、psycopg2、sqlalchemy、sqlite3),且 except 分支存在以下情况…
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-11-15 04:30 | 98f744d4 | 可取 |
版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。