VFP调用模式表单并接收返回值的方法与原则

2023-01-03 16:51:28 浏览数 (1)

虽然猫猫在文章中反复强调要做错误处理,很多人就是不听,还习惯性到处COPY代码,代码还不消化,到处乱用。

这样的程序表面上都正常,系统一大,肯定要完蛋的。

表单异常错误处理

在猫框的开发范式中,第一原则要求的是错误处理,这里的错误是包含了(错误、异常)两种情况。也就是你的程序都要去考虑两条线,一条是正常执行,一条是发生了错误怎么办?见太多人的程序了,错误压根不处理。

表单LOAD和INIT事件中错误处理

我们一般在LOAD和INIT事件就要把要处理的数据都准备好,如果此时发生错误,比如网络中断,程序不应该继续往下执行了,就算表单完全打开了,也没有任何意义。

所以代码如下,在这里返回了一个.F.假,这样VFP的表单就不会再显示了。模式和非模式表单都可以这样写。

LOAD 事件 init 事件(非猫框)

代码语言:javascript复制
 if 有错误
    ?错误
    return .f.
 endif

init事件 (猫框)

代码语言:javascript复制
 if 有错误
     ?错误
    this.Destroy()  &&释放所有自响应控件
    return .f.
 endif

如果是模式表单可以在Unload事件中返回值

代码语言:javascript复制
 return 123

模式表单取返回值规范调用方法

平常我们调用模式表单写法如下

代码语言:javascript复制
 Do form 模式表单 with 参数 to uReturn
 ?uReturn

如果模式表单在LOAD事件就Return .f. 这样情况会出现错误, uReturn 未定义

所以完整规范的写法如下

代码语言:javascript复制
 local uReturn
 uReturn =.null.
 Do form 模式表单 with 参数 to uReturn
 if isnull(uReturn)
   return 
 endif
 ?uReturn

这里就可以判定值是不是NULL,如果是NULL表示程序不往下执行了。

代码如果规范,就能从源码把错误给避免了,让您的程序更加稳定高效。

猫猫带个货,海南金煌芒果,坏果包赔,喜欢的可以下单啊。

0 人点赞