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

时间: 2024-08-01 07:32:42

Halcon算子翻译——catch的相关文章

Halcon算子翻译——exit

名称 exit - 终止HDevelop. 用法 exit( : : : ) 描述 退出HDevelop. 算子等同于菜单项File - > Quit. 在内部和导出的C ++代码中使用C函数调用exit(0). exit terminates HDevelop. The operator is aquivalent to the menu entry File -> Quit. Internally and for exported C++ code the C-function call

Halcon算子翻译——executable_expression

名称 executable_expression - 以类似于算子的方式执行单个表达式. 用法 executable_expression( : : Expression : ) 描述 HDevelop语言包含一些表达式,不仅返回一个返回值,而且修改它们的输入变量. 使用executable_expression,可以以类似于算子的方式执行这些表达式. 目前,这些是向量表达式'.clear()','.insert()'和'.remove()'. 有关更多详细信息,请参阅HDevelop用户指南.

Halcon算子翻译——comment

名称 comment - 为程序添加一行注释. 用法 comment( : : Comment : ) 描述 comment给程序中添加一行注释. 作为参数值,即作为注释,允许所有的字符. 如果使用算子窗口输入注释,并且注释行参数中有换行符,则每个文本行都插入一条注释语句. 在全文编辑器中,通过输入星号('*')作为第一个非空白字符来标记注释. 该算子对程序执行没有影响. comment allows to add a comment of one line to the program. As

Halcon算子翻译——export_def

名称 export_def - 将任意文本插入到程序的导出代码中. 用法 export_def( : : Position, Declaration : ) 描述 export_def允许定义逐行写入要导出{项目或程序}的输出文件的{代码行或文本块}. 参数Position控制了在声明中给出的文本的位置. 支持以下选项: 'in_place' - #文本插入到实际位置的过程中,即在相邻的程序行之间. 'at_file_begin' - #^^文本在导出文件的最开始处导出. 'before_pro

Halcon算子翻译——import

名称 import - 导入一个或多个外部程序. 用法 import( : : ProcedureSource : ) 描述 import语句可用于从HDevelop程序中导入其他外部程序. 导入的程序仅适用于包含导入语句的程序,但不作用于其他程序. import语句可以出现在程序的任何一行中. 导入的程序只能在导入语句下方使用,并可能被后面的(相同名称)导入程序取代. proc() * unresolved procedure call import ./the_one_dir proc()

halcon算子翻译——stop

名称 stop - 停止程序执行. 用法 stop( : : : ) 描述 stop算子停止HDevelop程序的连续程序执行. 如果发生这种情况,即使下面有大量的注释或其他不可执行的程序行,PC(程序计数器)仍停留在stop语句(而不是放在下一个可执行程序行),以便直接显示程序中断的原因. 算子相当于菜单栏中的stop行动(F9). 程序可以通过run(F5)继续. 可以通过在首选项对话框(preferences dialog)中设置时间参数来重新定义行为. 执行不会停止,而是在等待指定的时间

halcon算子翻译——region_to_label

名称 region_to_label - 将区域转换为标签图像. 用法 region_to_label(Region : ImageLabel : Type, Width, Height : ) 描述 region_to_label根据它们的索引(1..n)将输入区域转换成标签图像,即,第一区域被绘成灰度值1,第二区域被绘成灰度值2等.仅使用正灰度值. 对于'byte'图像,索引以取256的模输入. 超出生成图像的区域被适当地剪切. 如果区域重叠,则输入索引较高图像的区域(即,它们按照它们被包含

halcon算子翻译——elliptic_axis_gray

名称 elliptic_axis_gray - 计算灰度值图像中某个区域的方向和长轴. 用法 elliptic_axis_gray(Regions, Image : : : Ra, Rb, Phi) 描述 算子elliptic_axis_gray计算和输入区域具有“相同方向”和“纵横比”的椭圆的轴的长度和方向. 几个输入区域可以作为元组传递给Regions. 确定长轴Ra和短轴Rb的长度以及主轴相对于x轴的取向(Phi). 角度以弧度返回. 计算过程类似于elliptic_axis. 唯一的区别

halcon算子翻译——estimate_noise

名称 estimate_noise - 估算来自单个图像的图像噪声. 用法 estimate_noise(Image : : Method, Percent : Sigma) 描述 算子estimate_noise估算在Image中域(ROI)内的累积噪声的标准偏差. 标准偏差在Sigma中返回. 该算子在以下用例中很有用: 在匹配中确定MinContrast, 确定边缘滤波器的幅度, 相机评测, 监视相机的错误操作(例如,用户过度调整照相机增益). 可以在方法中选择以下四种方法之一估算噪声: