BOOK / SOURCE & READING RECORD
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Herb Sutter; Andrei Alexandrescu
1st edition, copyright 2005 (published October 2004)
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
已取得第一版完整 PDF,顺序读完 0–100 全部 101 条的正文(Summary、Discussion、Examples、Exceptions 与 References),并逐页直接查看嵌入代码图像所在的全部 80 个实质页,补齐文本提取留下的代码空白。另交叉阅读官方 Items 1、25、73、74、83。汇总与索引不计正文。auto_ptr、动态异常规范、旧式适配器等仅作历史语境;原创示例采用 C++20,不照搬旧代码。
查看版本、实际阅读范围与原文入口 →让错误停在有决策权的边界
错误被发现、被翻译和被处理,是三个不同职责。解析函数知道哪一段输入不符合语法,却未必知道应当重试、提示用户还是取消整个任务;因此它不能为了返回一个数而伪造成功。上层如果只负责转发,就让异常继续传播;只有掌握业务上下文的地方才添加业务含义,只有能够选择恢复动作的地方才结束传播。按引用捕获与裸 throw 保留异常的动态类型,而不是为了每层都有 catch 就复制并切掉信息。现代代码也可用错误值表达失败,但边界必须明确成功与失败互斥,不能把日志输出误当作恢复。这里的原创例子用解析金额说明这种职责划分,不复制书中案例。
阅读定位:Items 73–74,书页 144–145;结合 Item 25,书页 46。
原文与实际阅读范围
- Pearson 官方样页:Items 1、25、73、74、83
PDF 第 14–20 页;书页 2–3、46、144–145、160–161。
- Item 74: Report, Handle, and Translate Errors Appropriately
完整在线 Item 74,含 Summary、Discussion、Exceptions、References。
- InformIT 书籍及购买页面
核对第一版、出版时间、101 条目录及官方样页入口;不是全书正文。
Pearson 版权所有;第三方公开 PDF 仅作私有研究证据,可访问不等于转载许可。站点只发布原创解释、原创示例和出版社外链,不托管或链接第三方电子书下载。
能下载不等于已经读完;试读章节不等于全书。这里的原创笔记不是原书全文、译本或逐章替代品。
相关基础知识
相关主题链接用于补充背景,不表示这些既有文章已经按整本书核查。