`catch`语句如何识别没有反射的异常类型?

时间:2015-12-10 16:48:44

标签: c++ exception try-catch

众所周知,C ++没有反射。但是,当我们抛出错误时,try-catch可以确定您要抛出的异常类型。没有反思它是如何工作的?

1 个答案:

答案 0 :(得分:1)

虽然C ++没有向程序员公开反射,但编译器已知有类型信息。特别是,当C ++程序执行时,有一些特殊的规定使得每次输入try块时,都会生成一个特殊的条目(例如,在异常帧中的某个地方),特定的编译时类型的异常就绪了在这个位置处理。抛出异常时,会查询框架以获取最近的合适处理程序。