在programmer_guide的pdf檔案裡面提及到了error_handling
下圖是部分異常處理的宣告
第一種、物件導向的方法( error handling using hexception and try/catch)
在c:\users\public\documents\mvtec\halcon-10.0\examples\cpp\source可以找到example_errorhandling.cpp
// exception handler
void myhalconexceptionhandler(const halcon::hexception& except)
herror tryreadimage
(halcon::himage &image, const char *filename)
catch (hexception &except)
// success
cout << "succeeded!" << endl;
return h_msg_true;
}
// install the exception handler
hexception::installhhandler(&myhalconexceptionhandler);
第二種、程式法(不推薦)
在例程(ctrl+e)——應用範圍——一般——搜尋「error」有乙個dev_set_check的例子如下:
// local iconic variables
hobject image;
// local control variables
herror error;
htuple windowhandle, filename, readerror;
if (hdevwindowstack::isopen())
close_window(hdevwindowstack::pop());
set_window_attr("background_color","black");
open_window(0,0,512,512,0,"","",&windowhandle);
hdevwindowstack::push(windowhandle);
// error variable 'error' activated
set_check("~give_error");
filename = "wrong_name";
error = read_image(&image, filename);
readerror = (int)error;
set_check("give_error");
if (0 != (readerror!=2))
//now the program will stop with an exception(
注意 error = read_image(&image, filename);要在set_check前面才有效。)
error = read_image(&image, filename);
//請注意,某些元組操作沒有返回值。然後,所描述的方法導致乙個記憶體洩漏。請用物件導向的方法來代替。
舉乙個實時顯示影象視窗中滑鼠所在位置的畫素亮度的例子
read_image (image, 'fabrik')
while (1)
dev_set_check ('~give_error')
trydev_display (image)
get_mposition (3600, row, column, button)
*在halcon10.0後當滑鼠離開影象視窗後,get_mposition運算元出現異常。必須要有異常處理才能執行正常!
get_grayval (image, row, column, grayval)
set_tposition (3600, 24, 24)
write_string (3600, 'row='+row)
set_tposition (3600, 64, 24)
write_string (3600, 'column =' +column)
set_tposition (3600, 104, 24)
write_string (3600, 'grayval =' +grayval)
catch (exception)
set_tposition (3600, 24, 24)
write_string (3600, exception)
endtry
dev_set_check ('give_error')
wait_seconds (0.1)
endwhile
Halcon VC 資料互相訪問
最近在學習 halcon vc 的混合程式設計,整理了一些兩者變數互相訪問的方法。示例 如下 htuple vc 資料型別轉換 htuple htuple 1234 int i htuple 0 i i 1234 long l htuple 0 l l 1234 long lnumber htupl...
struts 異常處理 全域性異常處理
記錄一下全域性異常處理的過程 處理主動丟擲的異常,轉向錯誤提示頁面。1 寫乙個自己的異常,繼承runtimeexception,從父類生成構造方法 package me.yndy.srtp.exception suppresswarnings serial public class errorexc...
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...