catch语句如何在没有反射的情况下识别异常类型



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

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

相关内容

最新更新