Halcon异常处理(MFC)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Halcon异常处理(MFC)相关的知识,希望对你有一定的参考价值。
halcon自带异常处理流程,但是往往会在报错框弹出后,如果不忽略会导致程序崩溃掉,为此,在mfc编程中,需要针对哈利con处理函数做异常处理,我这里总结了2种方法,乐意和大家分享!
方法1、she_check( )
set_check("~give_error")和set_check("give_error")配合,开关Halcon自己的异常处理,自己获得错误返回值和在通过 get_error_text()获取错误文本信息;
直接上例子说用法,例如:
1 Herror Rtn = H_MSG_TRUE;//正确的返回值 2 char chrErrorText[ 1024 ]; 3 4 set_check("~give_error");//屏蔽 5 Rtn = write_image( hoImgSv, "bmp", 0, strImgPath );//通过获取错误文本信息 6 set_check("give_error");//开启 7 get_error_text( Rtn, chrErrorText );
方法2、try catch
在mfc中使用try catch会捕获不到异常,原因是halcon自己先捕获异常处理了,需要自定义异常处理,并使用halcon的 InstallHHandler()安装;
例子代码如下:
//1,自定义异常: void MyExceptionHandler( const HException& except ) { throw except; }; //2,在try catch 使用前,进行安装自定义异常处理: HException::InstallHHandler( &MyExceptionHandler); //3,调用try catch try { tuple_max( htLength, &htMax ); } catch( HalconCpp::HException &except ) //HalconCpp或者Halcon,具体看halcon版本
{
//异常的处理,例如messagebox
}
以上是关于Halcon异常处理(MFC)的主要内容,如果未能解决你的问题,请参考以下文章