关于OpenCV中 CV_Assert() 的使用引起程序中止/崩溃问题

CV_Assert() 的作用是:若括号中的表达式值为 false ,则返回一个错误信息,并终止程序执行。
但是 CV_Assert()assert 不同,CV_Assert() 会通过异常抛出,所以如果使用 CV_Assert(),可以通过捕获异常而不是程序崩溃,而 assert 会直接导致程序崩溃。当然如果你没有捕获这个异常,也同样会引起崩溃。
参考文章:CV_Assert和assert的区别


简单通过代码测试一下:

首先是 assert 的使用:
在这里插入图片描述如图所示,直接使用 assert 判定引发了程序的崩溃,也捕获不到异常。

然后直接使用 CV_Assert() 也是同样的效果,引起了程序的崩溃。
在这里插入图片描述那么用异常捕获试一下:
在这里插入图片描述程序是正常运行的,抛出的异常并没有引起程序的崩溃。

测试代码:

#include <iostream>
#include <assert.h>
#include <exception>
#include "opencv2/highgui.hpp"
#include "opencv2/core/core.hpp"
#include <opencv2/core.hpp>
#include <ros/ros.h>

int main()
{
   
    int i = 0;
    while(1){
   
        // 1. assert
        // assert(1 > 2);

        // try {
   
        //     assert(1 > 2);
        // } catch (cv::Exception& e) {
   
        //     std::cout << e.what() << std::endl;
        // }

        // 2. CV_Assert
        // CV_Assert(1 > 2);

        try {
   
            CV_Assert(1 > 2);
        } catch (cv::Exception& e) {
   
            std::cout << e.what() << std::endl;
        }

        sleep(1);
        std::cout << i << std::endl;
        i ++;
    }
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-27 07:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-27 07:32:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-27 07:32:03       82 阅读
  4. Python语言-面向对象

    2023-12-27 07:32:03       91 阅读

热门阅读

  1. GO基础进阶篇 (八)、runtime包

    2023-12-27 07:32:03       66 阅读
  2. k8s解决 搭建集群的时候notReady问题

    2023-12-27 07:32:03       60 阅读
  3. 【Go语言入门:Go程序的流程控制语句】

    2023-12-27 07:32:03       49 阅读
  4. client-go使用方法

    2023-12-27 07:32:03       61 阅读
  5. Unity编辑器紫色

    2023-12-27 07:32:03       57 阅读
  6. mysql如何分析sql是否成功使用索引

    2023-12-27 07:32:03       66 阅读
  7. 专属于程序员烂漫的表白||Python画动态爱心

    2023-12-27 07:32:03       71 阅读
  8. 微信小程序:跳转页面

    2023-12-27 07:32:03       63 阅读
  9. 运算符讲解

    2023-12-27 07:32:03       44 阅读
  10. 微信小程序实现一个天气预报应用程序

    2023-12-27 07:32:03       63 阅读
  11. C语言:冒泡排序算法的原理

    2023-12-27 07:32:03       46 阅读