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
  • 相关阅读:
    运算符重载
    poj2329dfs
    poj2349最小生成树prim
    poj1258最小生成树prim
    read 一个防止找不到就写一下的输入模板
    CentOS7下安装ngnix
    CentOS7下安装mysql
    CentOS7下安装rabbitmq
    在window 2008r2开发服务器上安装MSMQ消息队列
    spark快速大数据分析学习笔记(1)
  • 原文地址:https://www.cnblogs.com/love6tao/p/7479327.html
Copyright © 2011-2022 走看看