MFC中的异常处理

Exception handling in MFC

本文关键字:异常处理 MFC      更新时间:2023-10-16

这是对涵盖一系列c/c++语句的try进行编码后的一个基本问题。

如果输入了catch块,我如何知道哪个语句是罪魁祸首?

给定代码

try {
    if (a)
        throw 0;
    else if (b)
        throw 0;
    else if (c)
        throw 0;
    throw 1;
} catch (int i) {
    // << here
}

如果i0,则没有语言指定的机制来判断哪个throw 0抛出。我们只能区分01投掷。有编译器特有的技巧(我如何在C++中为捕获的异常打印堆栈跟踪以及在C++中的代码注入),但没有标准的。