深圳医疗网站建设公司,上海跨境电商网站制作,创意广告视频网站,如何建设手机端网站CV_Assert() 的作用是#xff1a;若括号中的表达式值为 false #xff0c;则返回一个错误信息#xff0c;并终止程序执行。 但是 CV_Assert() 与 assert 不同#xff0c;CV_Assert() 会通过异常抛出#xff0c;所以如果使用 CV_Assert()#xff0c;可以通过捕获异常而不是…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.hint 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 ;}
}