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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 深入理解 try/catch/throw

    C++ SELF
    等级 53,课时 0
    我们来拆解 C++ 中的异常处理: throw 是如何工作的,应该把 try/ catch 的边界放在哪里,异常如何沿着调用栈“向上冒泡”,什么是栈展开( stack unwinding),以及为什么在这个过程中会调用析构函数(RAII)。我们还会讲到通过 throw ; 进行重新抛出,构建一个实用的迷你项目(命令解析器 + main 中的循环),并总结典型错误。
    可用
  • std::exception 与 what():基础实践

    C++ SELF
    等级 53,课时 1
    我们来解析为什么在 C++ 里需要基类异常 std::exception, what() 方法如何工作,为什么“通用处理器”通常写成 catch ( const std::exception & e),为什么 catch ( std::exception e)(对象切片)是危险的,以及如何在不保存从 what() 返回的悬垂 const char* 的情况下,安全地输出诊断信息。
    可用
  • 标准异常 <stdexcept>

    C++ SELF
    等级 53,课时 2
    我们来分析在 C++ 中如何有意识地从头文件 <stdexcept> 中选择标准异常:何时抛出 std::runtime_error(运行时条件问题)、何时抛出 std::invalid_argument(违反了输入数据合同)、以及何时抛出 std::out_of_range(索引/值超出允许边界)。另外——从具体到通用的 catch 顺序、使用 e.what() 以及基于 CLI 的小练习,涉及 std::vector、 std::stoi 与 at()。
    可用
  • 自定义异常:命名、消息与上下文

    C++ SELF
    等级 53,课时 3
    我们来分析,为什么在 C++ 中要定义自己的异常类型,而不是只用通用的 std::runtime_error;如何选择有意义的错误类别( ParseError 与 CommandError);在 what() 里该写什么;以及如何不是用字符串,而是通过异常对象的字段来传递上下文。我们会用一个 CLI“支出记账”示例,展示错误归一化、异常转换,以及在 main 中进行处理。
    可用
  • 什么时候适合使用异常

    C++ SELF
    等级 53,课时 4
    我们来分析在 C++ 中如何在异常和“将错误作为值”之间做选择:什么时候适合使用 throw(违反契约、内部不变量被破坏、深层错误需要在上层处理),什么时候更适合通过 std::optional 或 std::variant 返回结果。以 TaskCLI 为例,我们展示处理边界(在哪里捕获 try/ catch)以及 API 设计中的典型错误。
    可用
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