GESP 四级 · GESP 202409 C++ 四级 第 23 题

判断题 · 答案 B

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

题目

在 C++ 中,如果没有捕获到异常(没有匹配的 catch 块),程序会继续执行而不会终止。

答案:B

解题思维

答案B。函数抛出异常不一定非要在try块中调用。异常会沿调用栈向上传播,直到被catch捕获或终止程序。

常见错误

不一定非要在try块中调用可能抛出异常的函数。异常会沿调用栈向上传播。

详细解析(节选)

【考点】C++异常处理|异常传播机制|默认异常处理程序

考纲四级"C++编程”模块核心考点。命题人专攻“异常未捕获=程序终止”这一易错点,90%考生会误以为异常块结束即流程正常。

解题思维链:1)C++标准规定未捕获异常触发默认处理程序;2)默认处理程序直接调用 terminate() 终止程序;3)因此“继续执行”表述绝对错误。通法:凡涉及异常“捕获/未捕获”的判断题,优先确认是否有 catch 块,无则必终止。

陷阱拆解:选项 A 利用“异常处理块结束即正常”的直觉陷阱,命题人偷换“未捕获”与“正常结束”概念。阴险细节是“继续执行”四字绝对化表述——若只背结论不读机制,必掉坑。

反命题思维:若加条件“存在 catch(...) 块”,答案翻转为 A;若改问“异常抛出后栈展开是否终止”,答案仍为 B。刷到异常类题先问:命题人想考我哪条标准规定?

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