← 完整学习路线

UNIT 31 / 78 · U31

异常、RAII展开与noexcept

本单元预计 5.5 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。

时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。

01 / READ

先知道自己在观察什么

16.4 throw/try/catch →

读完本小节全部正文与本节任务;先写状态/路径预测,再按该节的运行边界核对,不能只看标题或答案。

16.5 RAII异常展开与保证 →

读完本小节全部正文与本节任务;先写状态/路径预测,再按该节的运行边界核对,不能只看标题或答案。

16.6 noexcept与移动回访 →

读完本小节全部正文与本节任务;先写状态/路径预测,再按该节的运行边界核对,不能只看标题或答案。

先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。

本单元另列的补授

以下时间加在原单元预算之外;完成对应读法后再进入依赖它的任务。

02 / PREDICT & RUN

先留下自己的预测或独立尝试

先在笔记预测throw后跳过的语句、析构与catch顺序;再打开本节的unwind-owner.cpp,按该节命令在自己的副本运行,保存预测、命令、实际结果与差异。

完整例二:到catch之前清理真实对象 →
源码下载与编译入口

下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →

unwind-owner.cpp

先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。

03 / CHANGE ONE THING

通过一个变动看清原因

按16.5只改变准备数据中一个值,核对失败前后旧配置;只在自己的副本修改,先保留独立预测。

修改后应观察到什么

按所链接小节的合同逐项比较修改前后结果;意外编译成功/失败、未执行检查或不满足的边界均不能记作通过。

04 / DO IT YOURSELF

换一组条件,独立解决

完成16.6四步阶梯中的整数更新迁移,验证失败保留旧值并解释noexcept边界;关闭完整答案后重新完成。

用这些条件检查自己的实现

  • 留下自己的源码或纸面状态表、输入与独立期望;非法访问题不靠运行猜答案。
  • 按指定小节核对正常与边界/拒绝路径;保留失败与修复记录,不用教材检查收据替代本人完成。

接回贯穿练习

Reading Pipeline stage 05 →
异常与清理已授后回访资源退出;这是整合阅读,不替代该单元独立练习或本人主项目。

05 / EXPLAIN & CHECK

用证据决定是否进入下一单元

  1. 不看代码,说明throw后跳过的语句、析构与catch顺序。
  2. 指出本单元一次失败的最早原因,并解释检查能够和不能够证明什么。

本单元的验收依据

本单元所列完整小节、独立任务和两条复述均有本人证据;阅读位置、展开答案与教材示例运行不自动通过。

留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。