CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • RAII + 异常

    C++ SELF
    等级 54,课时 0
    分析为什么在 C++ 中资源在发生异常时会被自动释放(展开栈并调用析构函数)、RAII 如何防止泄漏但无法防止“部分应用”的更改、如何构造并保持类的不变式,以及为什么方法中的操作顺序对异常处理至关重要(通过 std::vector、 push_back、计数器 next_id_ 和索引不同步的例子)。最后 —— 实用技巧和典型错误,包括规则:析构函数不应抛出异常。
    可用
  • 异常安全保证:basic / strong / no‑throw

    C++ SELF
    等级 54,课时 1
    我们来解析方法在抛出异常时到底承诺了什么:对象的 有效性( basic guarantee )、“要么全部成功,要么什么都不变”( strong guarantee )以及不向外抛出异常的约束( no‑throw guarantee )。通过类似 TaskTracker 的示例展示如何在 std::vector 与索引之间维护不变式,如何通过 try/ catch 做回滚,以及为什么需要谨慎使用 noexcept。
    可用
  • commit/rollback 习语

    C++ SELF
    等级 54,课时 2
    解析为什么 RAII 能拯救资源,但不能在异常情况下保证对象不变性,以及 commit/rollback 习语如何帮助实现“要么全部,要么什么都不做”。学习将方法拆分为 prepare → commit → rollback,使用临时对象和 swap 作为简短的提交步骤,构建强异常保证,并通过 copy-and-swap 在 TaskStore 的示例中理解这一方法的特例。
    可用
  • noexcept — 实践意义

    C++ SELF
    等级 54,课时 3
    解析 noexcept 作为严格契约“异常不外露”:什么才算函数边界,为什么违反会导致 std::terminate,在哪些地方标注是合适的(getter、 swap、析构函数)以及在哪些地方危险(解析、容器增长)。单独讨论条件形式 noexcept(expr)、通过 static_assert 的检查,以及以 TaskBook 为例的实践。
    可用
  • 如何思考错误——前/后不变式

    C++ SELF
    等级 54,课时 4
    解析在 C++ 中对错误的“成熟”看法:方法契约(前置条件、后置条件以及异常时的保证)、对象不变式和通过 prepare/ commit 技术获得强保证(“要么全成,要么全不成”)。以迷你类 TaskList 为例,学习在修改前验证输入、通过 validate_invariant() 检查不变式,并测试极端场景,包括“操作中途失败”。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym