Halcon异常(C++)不起作用

现象

 

Halcon导出的C++程序,try catch不到异常。在Halcon下可以正常Catch到异常。 
C++代码:
try
{
   tuple_max(hv_Length, &hv_Max);//这里有问题,会出异常,但是,C++中捕捉不到该异常??
}
catch(HalconCpp::HException &HDevExpDefaultException)
{
   HDevExpDefaultException.ToHTuple(&hv_Exception);
  hv_ErrorCode = ((const HTuple&)hv_Exception)[0];
}
异常:

 
 原因 
 Halcon的异常(HDevExpDefaultException)没有被“安装”。
Halcon中提供了安装方法,static Handler InstallHHandler(Handler proc)。
可以定义自己程序的异常,在try catch前使用InstallHHandler安装。
修改方法:
1,自定义异常:
void MyHalconExceptionHandler(const HException& except)
{
throw except;
},
2,在构造函数中,进行安装:
HException::InstallHHandler(&MyHalconExceptionHandler);

3,调用try catch块
try
{
   tuple_max(hv_Length, &hv_Max);
}
catch(HalconCpp::HException &except) 
{
   //do something
}

参考:
1,HALCON / C++ User’s Manual 第五章Chapter 5 Exception Handling
2,Halcon帮助文档, Programmer's Gude - 11.3 Error Handling
 

转载于:https://www.cnblogs.com/iluzhiyong/p/4526450.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值