20、错误捕捉

1、dev_set_check ('~give_error')

功能:不捕捉错误,也不弹出窗口抛出错误,而是把错误代码存到Error变量里。

    dev_error_var (Error, 1) //定义Error变量,定以后Error值就为2,表示此时仍未有错误

 

dev_set_check ('~give_error')

FileName := 'wrong_name' //错误路径,故意让其下面读取图像出错

read_image (Image, FileName)

*draw_rectangle1 (360, Row1, Column1, Row2, Column2)//当程序中有两次错误时,Error重新赋值覆盖上一次错误

 

ReadError := Error //Error把赋值给新的变量,赋值后Error值马上又变回2,重新检测新的错误

if (ReadError # H_MSG_TRUE) //H_MSG_TRUE == 2即假如没有错误

write_string (3600, 'wrong file name: '+FileName+'错误代码'+ReadError)//打印错误信息大窗口上

endif

2、dev_set_check ('give_error')

功能:捕捉错误,停止执行,并弹出窗口。

dev_set_check ('give_error')

read_image (Image, FileName)

3、try catch捕捉错误

    (1)、使用之前,必须把使用dev_set_check ('give_error'),因为只有这种模式会捕捉错误

    (2)、代码:

 

dev_set_check ('give_error')

dev_error_var (Error, 1)

try

read_image (Image, 'may_be_not_available')//第一次遇到错误马上跳到catch

draw_rectangle1 (360, Row1, Column1, Row2, Column2)//这行不会执行

catch (Exception) // 取得错误信息,Exception是一个字符串数组

if (Exception[0] = 5200) //字符串数组Exception第一个元素存放的是错误代码,即错误代码为5200

dev_get_exception_data (Exception, 'error_msg', ErrMsg)//获取错误信息

set_tposition (3600, 24, 12)

write_string (3600, ErrMsg)

return ()

else

* rethrow the exception

throw ([Exception,'unknown exception in myproc'])//假如错误代码不是指定的5200,则弹出窗口抛出错误

endif

endtry

注:假如不是使用dev_set_check ('give_error') 而是使用dev_set_check ('~give_error')当执行到try里面语句有错误时,程序马上跳到endtry并把错误代码存放到Error变量里dev_error_var (Error, 1)

 

 

 

错误代码查询:

posted @ 2022-05-08 23:08  ihh2021  阅读(171)  评论(0)    收藏  举报