• Halcon算子翻译——dev_get_exception_data


    名称

    dev_get_exception_data - 访问exception元组的元素。

    用法

    dev_get_exception_data( : : Exception, Name : Value)

    描述

      算子dev_get_exception_data允许访问由算子catch捕获的exception元组的特定项目。 除了从来都是作为exception元组的第一个元素传递的错误代码外,exception元组的所有其他数据都必须通过算子dev_get_exception_data专门访问。 这是因为提供的数据的顺序和范围在将来的版本中可能会改变,并且可能会因不同的导出代码类型而有所不同。

      如果一个算子在HDevelop或HDevEngine中发生错误,则捕获的exception元组包含下面列出的数据项。 这个元组必须传递给参数Exception。 请求的数据位置(slot)的名称必须传递给参数Name。 请求的数据在参数Value中返回。 通过将slot名称的元组传递给Name,可以在dev_get_exception_data的单个调用中请求多个异常数据项。 在这种情况下,相应的数据元组被返回到Value中。 对于不可用的请求项目,算子返回空字符串('')。

    支持的data slots:

    'error_code':

      HALCON或用户定义的错误代码。 HALCON错误代码列表(代码<10000)可以在“Extension Package Programmer's Manua”的附录中找到。

    'error_message':

      HALCON错误信息。

    'add_error_code':

      附加的HDevelop特定的错误代码。 这些错误代码指定在HALCON算子(代码= 21000)内还是在算子外部(例如在判断和分配参数表达式期间)是否捕获到错误。 在后一种情况下,错误代码更精确地指定错误类型。 相关的错误代码列在“HDevelop User's Guide”中。

    'add_error_message':

      更精确地描述HDevelop特定错误的附加错误消息。

    'program_line':

      程序发生错误行的编号。

    'operator':

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

    'call_stack_depth':

      调用堆栈的深度(如果‘main’发生错误则返回深度1)。

    'procedure':

      发生错误的程序的名称。

    'user_data':

      用户定义的exception元组。 如果算子异常被捕获并重新抛出,则这是在throw调用中被追加到捕获的异常元组中的元组。 如果是完全由用户定义的异常,则返回除包含错误代码(> = 30000)的第一个元素之外的所有元组项。 如果没有通过异常元组传递用户数据,则返回一个空元组。 请注意,在同一个dev_get_exception_data调用中,用户数据元组(user data tuple)不能和任何其他异常数据一起请求。

    参数

    Exception (input_control)     exception-array → (integer / string)
      包含exception数据或用户定义的错误代码的元组。


    Name (input_control)           attribute.name(-array) → (string)

      请求的exception数据的名称。
      Default value: 'error_code'
      List of values: 'add_error_code', 'add_error_message', 'call_stack_depth', 'error_code', 'error_message', 'operator', 'procedure', 'program_line', 'user_data'


    Value (output_control) attribute.value-array → (integer / string)
      请求的exception数据。

    结果

    如果指定参数的值正确,则dev_get_exception_data(作为算子)返回2(H_MSG_TRUE)。 否则会引发异常并返回错误代码。

    Possible Predecessors

    catch

    See also

    try, catch, endtry, throw, dev_set_check

    模块

    Foundation

    HDevelop例程

    try_catch.hdev           Demonstrate the usage of the exception handling in HDevelop
    set_shape_model_timeout.hd     Demonstrate how to use the timeout mechanism for shape-based matching

  • 相关阅读:
    ScheduledThreadPoolExecutor 使用线程池执行定时任务
    ocals是Express应用中 Application(app)对象和Response(res)
    Spring Test 整合 JUnit 4 使用总结
    javascript创建一个基于对象的栈结构
    亲密字符串之Javascript解法
    javascript创建一个基于数组的栈结构
    整数反转
    stage1----航空票务系统需求分析报告
    实验报告
    Lamda 表达式
  • 原文地址:https://www.cnblogs.com/xhiong/p/7837651.html
Copyright © 2020-2023  润新知