在c++中使用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
}
现象:出现InstallHHandler 未定义
原因:InstallHHandler 为halcon10中定义函数,不兼容
更改:在头文件前 #define HCPP_LEGACY_API可以使用旧的HTuple成员函数