# 失败：未引发 <class 'SystemExit'>
意外异常：SystemExit(0)

- **ID:** `python/pytest-doctest-capture-stdout`
- **领域:** python
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

调用 sys.exit() 或带 --help 的 argparse 的 doctest 退出了解释器；doctest 期望返回值，而不是进程退出。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 7.x | active | — | — |
| 8.x | active | — | — |

## 解决方案

1. **** (90% 成功率)
   ```
   >>> import sys
>>> try:
...     main(["--help"])
... except SystemExit as e:
...     print("exit", e.code)
exit 0
   ```
2. **** (95% 成功率)
   ```
   def main(argv=None) -> int:
    ...
    return 0

if __name__ == "__main__":
    raise SystemExit(main())
   ```

## 无效尝试

- **** — Continues after failure but doesn't prevent SystemExit. (85% 失败率)
- **** — In doctest source, suppress changes the observable output. (70% 失败率)
- **** — Hides a real usability bug in the CLI. (80% 失败率)
