此异常是什么意思>第一次机会异常在 Project3 中0x000007FEFD38A06D时未处理的异常.exe



我正在研究自动车牌识别,我正在提供汽车图像作为输入,但我得到了这个例外

在Project3.exe中的第一次机会异常0x000007FEFD38A06D: Microsoft c++ exception: cv:: exception at memory location 0x0000000000249160.
如果有此异常的处理程序,则可以安全地继续执行程序。

如果我选择继续选项,我得到

未处理的异常在0x000007FEFD38A06D在Project3.exe: Microsoft c++ exception: cv::异常在内存位置0x00000000002590D0.
如果有此异常的处理程序,则可以安全地继续执行程序。

如果我选择继续选项,我得到

调试断言失败行1140表达式:vector script out of range

谁能告诉我这些错误是什么意思?

在Project3.exe中的0x000007FEFD38A06D的第一次机会异常:Microsoft c++ exception: cv::内存位置0x0000000000249160的异常。如果有此异常的处理程序,则可以安全地继续执行程序。

让我们来分析一下:

  • First-chance exception:这是调试器告诉您已经抛出异常。这不是错误。如果你决定继续,异常将被传递给程序。
  • Project3.exe中的0x000007FEFD38A06D:这是抛出异常时指令指针所在的位置。它对你不是很有用,但它有时可以用来找出在没有符号的构建中发生问题的地方。
  • Microsoft c++ exception:这是一个c++异常,与结构化异常相反。
  • cv::Exception:这是抛出的异常的名称。看起来像是OpenCV的一个例外。
  • at memory location 0x0000000000249160:这是堆栈上异常对象的地址。同样,不是很有用。

Continue将异常传递给程序。如果它被正确捕获,程序可以继续正常执行。如果这个异常没有处理程序,您将得到下一条消息:

未处理的异常在0x000007FEFD38A06D在Project3.exe: Microsoft c++异常:cv::异常在内存位置0x00000000002590D0。如果有此异常的处理程序,则可以安全地继续执行程序。

这意味着抛出了异常,但在任何地方都没有捕获处理程序。这很可能是编程错误,很可能是您的错误。看起来你调用了一个OpenCV函数,该函数抛出了一个cv::Exception而失败,但你没有捕捉到它。

这通常会导致崩溃,但由于您在调试器中运行,因此可以选择忽略此异常。这就是Continue按钮在这个对话框中的作用。因此,代码不会抛出异常,而是继续执行,就像什么都没发生一样。这很可能最终失败,因为错误条件现在已经被忽略了。

调试断言失败行1140表达式:vector script out of range

。我不知道这发生在哪个文件中,但是在1140行的某个地方,std::vector被索引为超出范围的值。这并不奇怪,因为您忽略了异常并允许程序继续。

长话短说:您需要捕获cv::Exception并正确处理错误条件

相关内容

  • 没有找到相关文章