在 C++ 中,如果没有捕获到异常(没有匹配的 catch 块),程序会继续执行而不会终止。
答案B。函数抛出异常不一定非要在try块中调用。异常会沿调用栈向上传播,直到被catch捕获或终止程序。
不一定非要在try块中调用可能抛出异常的函数。异常会沿调用栈向上传播。
【考点】C++异常处理|异常传播机制|默认异常处理程序
考纲四级"C++编程”模块核心考点。命题人专攻“异常未捕获=程序终止”这一易错点,90%考生会误以为异常块结束即流程正常。
解题思维链:1)C++标准规定未捕获异常触发默认处理程序;2)默认处理程序直接调用 terminate() 终止程序;3)因此“继续执行”表述绝对错误。通法:凡涉及异常“捕获/未捕获”的判断题,优先确认是否有 catch 块,无则必终止。
陷阱拆解:选项 A 利用“异常处理块结束即正常”的直觉陷阱,命题人偷换“未捕获”与“正常结束”概念。阴险细节是“继续执行”四字绝对化表述——若只背结论不读机制,必掉坑。
反命题思维:若加条件“存在 catch(...) 块”,答案翻转为 A;若改问“异常抛出后栈展开是否终止”,答案仍为 B。刷到异常类题先问:命题人想考我哪条标准规定?