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