zoukankan      html  css  js  c++  java
  • Halcon算子翻译——catch

    名称

    catch - 捕获在前面的try块中抛出的异常。

    用法

    catch( : : : Exception)

    描述

      使用算子try,catch,endtry和throw可以在HDevelop中实现动态的异常处理,这相当于C ++和C#中的异常处理。 HDevelop中异常处理的基本概念在算子try,throw和dev_set_check以及“HDevelop用户指南”中进行了描述。

      算子catch在错误情况时结束一个监控的程序行块,并跳转至另一个程序行块。 如果try-catch块执行没有出现异常,则catch-endtry块将被忽略,程序将在相应的endtry算子后继续执行。 相反,在错误情况下,程序执行从发生错误的算子(或从throw算子)直接跳转到try-catch块附近的catch算子。 输出控制参数Exception返回一个元组,包含一组预定义的数据,用于描述发生算子错误时的错误。 如果throw运算符抛出异常,则可以返回任意的用户定义的元组。

      Exception元组中最重要的数据是错误代码。 因此,它作为Exception元组的第一项,可以通过'Exception'[0]直接访问。 但是,所有其他数据都必须通过算子dev_get_exception_data进行访问,因为提供的数据的顺序和范围在将来的版本中可能会更改,并且可能因不同的编程语言导出而有所不同。 尤其是,必须考虑到,在导出的代码中有一些错误元组的详情是不可用的,有些详情在请求之前可能无法确定(如错误消息)。

      如果由算子错误引发异常,HALCON错误代码<10000。如果从扩展库算子引发的异常,则会返回用户定义的错误代码(> 10000)作为错误代码。 所有HALCON错误代码的列表可以在'Extension Package Programmer's Manual'的附录中找到。 算子throw的用户定义的Exception元组的第一个元素应该是一个错误代码> = 30000,可以加入其他的元组元素,没有任何限制。

      如果在算子在HDevelop或HDevEngine中发生错误,Exception元组将提供以下关于错误的附加信息:

      HALCON错误消息。

    附加的HDevelop特定错误代码,用于指定在HALCON算子(代码= 21000)内还是在算子外部(例如,在评估和分配参数表达式期间)捕获到错误。 在后一种情况下,错误代码更精确地指定了错误的类型。

    一个确切的特定HDevelop错误消息。

    发生错误的程序行号。

    抛出异常的算子名称(如果在受保护的程序中抛出异常,则返回' - protected - '而不是算子名称)。

    调用堆栈的深度(如果错误发生在“main”,则返回深度1)。

      在大多数情况下,对于自动异常处理,使用HALCON错误代码就足够了。 其他数据主要是为了向HDevelop程序的开发者提供一些关于错误情况的信息,以便于调试。 注意:在一般情况下,在导出的代码中有关错误位置的信息将不可用。

    注意

    算子try,catch,endtry和throw不支持C语言导出,支持语言C ++,C#和VisualBasic / .NET。 只有后者支持跨程序抛出异常。

    参数

    Exception (output_control)   exception-array → (integer / string)
    返回异常数据的元组。

    结果

    catch总是返回2(H_MSG_TRUE)。

    可能的后文

    dev_get_exception_data

    See also

    try, endtry, throw, dev_get_exception_data, dev_set_check

    模块

    Foundation

    HDevelop例程

    try_catch.hdev           Demonstrate the usage of the exception handling in HDevelop
    set_shape_model_timeout.hdev         Demonstrate how to use the timeout mechanism for shape-based matching
    cancel_draw_result.hdev       Enable user-defined actions when a draw operation is canceled

  • 相关阅读:
    python学习之argparse模块的使用
    pip pytorch安装时出现的问题
    ubuntu16.04中将python3设置为默认
    ubuntu复制文件或目录
    如何验证电脑的网卡是否可以正常使用
    《机器学习》西瓜书第六章支持向量机
    《机器学习》西瓜书第五章神经网络
    《机器学习》西瓜书第四章决策树
    《机器学习》西瓜书第三章线性模型笔记
    JavaScript笔记
  • 原文地址:https://www.cnblogs.com/xhiong/p/7827222.html
Copyright © 2011-2022 走看看