我使用 catch2 作为单元测试框架。一个测试用例应该检查函数调用是否导致抛出异常,所以我基本上写
REQUIRE_THROWS (class.throwingFun (arg1, arg2));
会发生什么:函数抛出并且测试崩溃。查看调用堆栈,我发现崩溃是由于在调用我的 throwing 成员函数时引发的异常而发生的。这里可能出了什么问题,所以抛出的异常不会被 REQUIRE_THROWS 捕获,而是使整个测试崩溃?
编辑:由于这是一个复杂且封闭源代码的项目,因此我无法为该问题提供一个最小且可重现的示例。但是,也许有人遇到了类似的错误,并且可以假设可能导致这种行为的原因。