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,在构造函数中,进行安装:
    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
     
  • 相关阅读:
    Halcon 笔记3 形态学
    Halcon 笔记2 Blob分析
    Halcon 笔记1
    线程
    Fn+F1-F12,避免使用FN+
    改变与接受
    PictureBox使用异常
    (一)Knockout
    (二)HTML5
    (一)chrome扩展
  • 原文地址:https://www.cnblogs.com/iluzhiyong/p/4526450.html
Copyright © 2011-2022 走看看