HalconVC異常處理

2021-06-23 03:30:06 字數 2406 閱讀 9061

在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 觸...