突然间,我的代码开始抛出异常First-chance exception at 0x7731c41f in VideoPlayer.exe: Microsoft C++ exception: GenICam::RuntimeException at memory location 0x0018f5dc..
我无法找到它的确切位置,因此我在main
函数和main
之外的所有内容中进行了评论。我开始逐个取消注释代码块,而main
中的代码仍然是注释。在执行此操作时,我注意到有函数A
,当它被注释时没有异常,但是当它被取消注释时会抛出上面的异常。
我不明白如果没有调用它会如何导致exeception(我在其中放置了断点并且在main中的代码被注释)?
答案 0 :(得分:2)
在静态初始化期间将使用您的函数。 请看以下示例:
#include <iostream>
bool static_func()
{
std::cout << "Before main" << std::endl;
return true;
}
static const bool b = static_func();
int main()
{
std::cout << "We are main" << std::endl;
return 0;
}
由于您只看到第一次机会异常,因此会被捕获并处理。我在抽象工厂中看到过这样的构造,例如工厂自行配置 断点未被击中的原因必须是其他原因。
答案 1 :(得分:0)
在VS,Debug菜单中,Exceptions ...检查匹配类型的throw列。然后开始调试,它将准确停止抛出的位置。你可以看看为什么。