我使用 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
}