【问题标题】:How does `catch` statement recognize the type of exception without reflection?`catch` 语句如何在没有反射的情况下识别异常类型?
【发布时间】:2015-12-10 16:48:44
【问题描述】:

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

【问题讨论】:

标签: c++ exception try-catch


【解决方案1】:

虽然 C++ 没有向程序员公开的反射,但编译器知道类型信息。特别是,当 C++ 程序执行时,有特殊的规定,每次进入 try 块时,都会产生一个特殊的条目(某处,例如,在异常帧中),表明特定编译时类型的异常已准备好在这个位置处理。当抛出异常时,会在框架中查找最近的合适处理程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 2022-08-19
    • 2019-12-23
    • 2021-11-11
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多