GESP 四级 · GESP 四级样题(C++ 组) 第 12 题

选择题 · 答案 B

← 整套速查表 GESP 四级 全部真题

题目

在 C++ 中,以下哪个关键字用来捕获异常( )

答案:B

解题思维

这题考的是异常处理里哪个词负责‘接住’异常。别被 throw 和 try 带偏,先想异常处理三要素:抛出、捕获、处理。抛出用 throw,捕获用 catch,处理用 try 包围。题干问的是‘捕获’动作,所以直接锁定 catch。

常见错误

最容易错选 A 项 throw,因为‘抛’和‘捕获’在中文里容易被混淆,或者误以为抛出异常的同时就完成了捕获。其次是 C 项 try,学生常把‘处理异常’等同于‘捕获异常’,忽略了 try 只是定义异常处理块的开始,真正执行捕获动作的是 catch 子句。D 项 finally 是 Java 特有,C++ 根本没有这个关键字,选它说明对语言体系完全不熟悉。

详细解析(节选)

【考点】异常处理|关键字功能|语言差异

这道题考查的是 C++ 异常处理机制中三个关键字的具体分工:抛出(throw)、捕获(catch)、处理(try)。命题人专门挖了三个坑:一是利用中文语义的模糊性,让考生把‘抛出’和‘捕获’搞混;二是利用‘处理’一词的宽泛性,诱导考生误以为 try 就是捕获;三是混入 Java 特有的 finally 作为干扰项,测试考生是否真正掌握 C++ 语法体系。

解题心法很简单:拿到题先想‘异常处理三要素’。抛出异常时,用 throw 关键字;异常被抛出后,程序会跳到最近的匹配块,这个‘接住’异常的动作,由 catch 关键字完成;而 try 只是用来定义一个块,告诉编译器‘这里如果出错,就跳转到 catch’,它本身不负责捕获。

具体到选项:A 项 throw 是抛异常,题干问捕获,排除;C 项 try 是异常处理块的开始,负责‘处理’而非‘捕获’,排除;D 项 finally 是 Java 才有,C++ 没有,直接排除;B 项 catch 才是真正执行捕获动作的关键字,符合题意。

避坑提示:很多学生背结论时只记‘异常处理用 try-catch-throw’,却不理解每个词的具体职责,导致看到‘捕获’就下意识选 throw(因为抛出和捕获在语义上容易混淆),或者选 try(因为 try 和异常处理绑定太紧)。记住:抛出是 throw,捕获是 catch,处理是 try。另外,C++ 的异常机制和 Java 完全不同,Java 有 finally 块做清理工作,C++ 没有,选 D 的同学大概率是把 Java 知识迁移过来了。

考频趋势:根据题库数据,异常处理是高频考点。题库共考过 1295 题,覆盖 11 个考试级别(2008-2026);逐年分布:2008 年 1 题、2011 年 1 题、2019 年 3 题、2023 年 287 题、2024 年 413 题、2025 年 401 题、2026 年 109 题、null 年 80 题;分赛事:GESP 一级 332 题、二级 283 题、三级 215 题、四级 186 题、七级 91 题、八级 79 题、六级 78 题、五级 23 题、CSP 提高级 3 题、入门级 3 题、NOIP 提高组初赛 2 题。异常处理在 GESP 四级中占比 186 题,属于核心考点。

预测:基于数据,异常处理在 GESP 四级中持续高频(2024-2026 年合计 923 题),未来仍可能以‘关键字功能辨析’或‘异常处理结构匹配’的形式出现,但难度不会超过本题。暂无足够依据预测具体题型变化。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断