zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SpringBoot的缓存
    jsp标签指定id区域内容显示和隐藏
    Linux awk统计日志中出现过的IP(或出现次数最多的N个IP)
    回文数
    算法z形字符串
    最长回文字符串
    redis与Mysql数据同步
    算法(1)
    滑动窗口算法
    HTTP长连接和短连接
  • 原文地址:https://www.cnblogs.com/love6tao/p/7479327.html
Copyright © 2011-2022 走看看