• 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,在构造函数中,进行安装:如果是MFC就是在主对话框的构造函数下
    HException::InstallHHandler(&MyHalconExceptionHandler);

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

    参考:
    1,HALCON / C++ User’s Manual 第五章Chapter 5 Exception Handling
    2,Halcon帮助文档, Programmer's Gude - 11.3 Error Handling
  • 相关阅读:
    插入排序-Java
    选择排序-java
    逻辑回归----梯度上升
    logistic回归----- 随机梯度下降法
    JAVA实现聚类指标的计算Purity、NMI、RI、Precision、Recall、F值。
    Python 条形图绘制
    java中接口的注意事项
    算法-双向队列
    算法-manacher-最长回文子串-1
    算法-kmp-1
  • 原文地址:https://www.cnblogs.com/love6tao/p/7479327.html
Copyright © 2020-2023  润新知