首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

关于error返回值的有关问题

2012-08-27 
关于error返回值的问题把下面这个代码放在form.init里面,初始化的时候就判断端口号时候可以打开。ON ERROR

关于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

热点排行