# C# 异常与 API 契约检查清单

## 异常使用

- 是否用异常控制常规流程；是否在热路径抛出可避免的异常。
- `catch` 是否过宽并吞掉应传播的异常；`when` 过滤器是否合理。
- `OperationCanceledException` / `TaskCanceledException` 是否与取消语义区分处理。

## 公共 API 演进

- 新增 `throw`、变更返回可空性、变更枚举值是否在 diff 中可证破坏二进制或源码兼容。
- `Obsolete` 迁移路径是否清晰。

## 日志与敏感信息

- 异常消息或日志是否可能写入密钥、令牌或 PII（diff 可见时）。
