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
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM