0

我使用 Visual Studio Native Unit Test Framework for C++。当断言失败时,不会执行下一个语句并调用本地对象析构函数,因此似乎引发了异常,但我无法通过catch (...)子句捕获任何 C++ 异常。经过一些实验,我注意到__int2c()调用(触发 2c 中断,由于文档),例如,具有相同的效果。到今天为止,我只知道具有这种行为的异常。您能否给我一些提示,说明在这种情况下可能是什么原因?

更新:

这是一个代码示例

void func()
{
    struct Foo
    {
        ~Foo()
        {
            // this code is executed
        }
    };

    Foo foo;

    try
    {
        Assert::IsTrue(false);
    }
    catch (...)
    {
        // this code is not executed 
    }

    // this code is not executed
}
4

0 回答 0