1

突然我的代码开始抛出一个异常First-chance exception at 0x7731c41f in VideoPlayer.exe: Microsoft C++ exception: GenICam::RuntimeException at memory location 0x0018f5dc..,我无法找到它究竟从哪里抛出,所以我在main函数中注释了所有,在main. 我开始一一取消注释代码块,同时main保留注释中的代码。在执行此操作时,我注意到有一个功能A,当它被注释时没有异常,但是当它被取消注释时,它会抛出上面的异常。

我不明白如果不调用它会如何导致异常(我在其中放置了断点并注释了 main 中的代码)?

4

2 回答 2

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;
}

由于您只看到第一次机会异常,它将被捕获和处理。例如,我在抽象工厂中看到过这样的构造,工厂自行配置。
你的断点没有命中的原因一定是别的。

于 2013-06-02T15:07:09.060 回答
0

在 VS 中,Debug 菜单,Exceptions... 检查匹配类型的 throw 列。然后开始调试,它会在 throw 发生的地方停止。你可以看看为什么。

于 2013-06-02T17:11:10.113 回答