当前位置: 代码迷 >> VFP >> 关于error返回值的有关问题
  详细解决方案

关于error返回值的有关问题

热度:9206   发布时间:2013-02-26 00:00:00.0
关于error返回值的问题
把下面这个代码放在form.init里面,初始化的时候就判断端口号时候可以打开。

ON ERROR Do CommErrorHandle WITH ERROR(),MESSAGE( )
For i = 1 To 4
  thisform.comcrl.CommPort = i &&指定端口号
  thisform.comcrl.portOpen = .T. &&尝试打开
Next
ON ERROR

***CommErrorHandle.prg*****

PROCEDURE CommErrorHandle
PARAMETER nError,mess
CLEAR
? 'Error number: '+ ALLTRIM(STR(nError))
? mess
ENDPROC

nError返回值为什么是0??mess显示是“端口号无效”



------解决方案--------------------------------------------------------
1429 是 vfp 的错误号,表示 OLE 类型的错误
要获取原始错误号,可在 CommErrorHandle 中用 aerror 来获取,详情参考 aerror 函数的帮助内容

PROCEDURE CommErrorHandle
PARAMETER nError,mess

if inlist(nError,1427,1429)
local atemp[1]
aerror(atemp)
? aTemp[7]
? aTemp[3]
else
CLEAR
? 'Error number: '+ ALLTRIM(STR(nError))
? mess
endif

ENDPROC
  相关解决方案