能力缺口:别把异常处理当成简单的 try catch 套娃
很多写 C++ 的人对异常的理解停留在表面:遇到可能出错的地方套个 try,后面跟个 catch 捕获所有异常就算完事。一旦遇到深层调用栈里的错误,或者需要区分不同类型的异常进行针对性恢复时,代码往往乱成一团。这门课解决的就是“知道语法但不懂设计”的问题。它从传统的出错机制切入,对比返回错误码和异常机制的本质区别,逼你面对真实的工程痛点:什么时候该抛异常,什么时候不该抛,抛出后调用方到底怎么接才不会导致内存泄漏或状态混乱。如果你连栈展开、异常安全、多 catch 的匹配顺序都说不清楚,这块就是你的短板。课程适合有基础 C++ 语法储备的学习者,至少得懂类、对象、函数传参,如果连构造析构都迷糊,建议先补基础再看。
学习顺序与资料配合:先啃核心三件套,再死磕实例
建议先看传统出错机制、异常机制本身、异常特点与优点这几块。这几节帮你建立判断标准,搞清楚异常相比返回码到底强在哪,以及它的代价是什么。看完核心概念,重点放在 try throw catch 的具体使用细节上,特别是抛出异常和异常接收这两节,涉及对象生命周期和栈展开过程,这是最容易踩坑的地方。之后直接进实例部分,一个都别跳。实例从基本使用、多 try 多 catch、捕获所有异常,到函数异常的抛出、成绩输入错误、数组越界,覆盖了常见场景。每个实例都在回答具体问题:多个 catch 怎么匹配,catch 啥时候该用,函数声明里怎么约束异常。资料里的代码必须自己敲一遍,别光看视频。敲完之后改条件触发异常,观察调用栈怎么走,变量状态怎么变,动手改才是查漏补缺的关键。
学完产出:能独立设计模块的错误处理流程
学完之后,你应该能独立为一个小模块设计完整的异常处理流程,而不是到处乱套 try catch。具体来说:能判断一段代码里哪些错误该用异常、哪些该用返回码;能正确抛出自定义异常对象,并在上层调用链中精准捕获处理;能处理多 catch 的优先级,避免漏接或误接;能理解函数抛出异常时栈展开的影响,写出异常安全的代码。配套练习方面,实例代码是基础,练完之后自己加码:比如在数组越界实例里,改成抛出自定义异常类,然后在上一层捕获并打印上下文信息;在成绩输入实例里,加一个重试逻辑,捕获异常后让用户重新输入。别光跑通就完事,自己加错误场景,自己设计恢复逻辑,这才算真正把异常处理变成手里的工具,而不是书本上的死概念。
课程目录
1-1 [异常处理] 传统的出错机制 (11:54) 1-2 [异常处理] 异常机制 (12:58) 1-3 [异常处理] 异常特点 (08:06) 1-4 [异常处理] 异常优点 (12:43) 1-5 [异常处理] try throw catch (19:43) 1-6 [异常处理] 抛出异常 (18:05) 1-7 [异常处理] 异常接收 (09:08) 1-8 [异常处理] 实例01-基本使用 (09:56) 1-9 [异常处理] 实例02-多try多catch (14:10) 1-10 [异常处理] 实例03-捕获所有异常 (10:12) 1-11 [异常处理] 实例04-函数异常的抛出 (05:41) 1-12 [异常处理] 实例05-成绩输入错误 (11:02) 1-13 [异常处理] 实例06-数组越界 (07:00) 1-14 [异常处理] 实例07-职称错误 (13:22) 1-15 [异常处理] 总结 (08:22)





