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
  • 相关阅读:
    uva 10370
    uva 10107
    uva 10038
    uva 488
    伪代码格式
    公众号的秘密,知道一个biz就够了
    ToolTip 概述
    swt
    Java GUI图形界面开发工具
    Java多线程-两个小球
  • 原文地址:https://www.cnblogs.com/love6tao/p/7479327.html
Copyright © 2011-2022 走看看