主题:疯狂的VFPER之错误处理程序
一晃真正用VFP写程序也已6年多了,大大小小也做了几十个系统,曾经有多少个日夜坐在电脑前敲打着空格、回车...,突然发现我在论坛上回贴的多,发贴的少,决定痛改前非:)...闲话少说,言归正传,我会陆续将我的部份VFP代码给大家分享(并不一定都是我的原创,有些是在其他VFPER的代码上改的)。
将以下代码存为myError.prg
并在主程序中加入On Error Do myError.prg With Error(),Message(),Message(1),Program(),Lineno(),Lineno(1)
Parameter lnError,lcMessage,lcMessage1,lcProgram,lnLineno,lnLineno1
Set Textmerge To "&pcSys_Dir.\ErrorLog.txt" Additive Noshow
\------------------------------------------------------------
\<<Date()>> <<Time()>> 错误记录
\计算机名:<<Sys(0)>>
\错误代号:<<lnError>>
\出错位置:<<lcProgram>>
\错误行号:<<lnLineno>>
\错误代码:<<lcMessage1>>
\错误含义:<<lcMessage>>
Set Textmerge To
nValue=Messagebox('程序发生错误!详细信息如下:'+Chr(13)+Chr(13)+;
'错误代号:' + Alltrim(Str(lnError)) + Chr(13) + ;
'出错位置:' + lcProgram + Chr(13) + ;
'错误行号:' + Alltrim(Str(lnLineno)) + Chr(13) + ;
'错误代码:' + lcMessage1 + Chr(13) + ;
'错误含义:' + lcMessage1,2+48+512,"提示")
Do Case
Case nValue=3
Clear Events
For i=_Screen.FormCount To 1 Step -1
_Screen.Forms(i).Release
Endfor
Case nValue=4
Retry
Case nValue=5
Return
Endcase
将以下代码存为myError.prg
并在主程序中加入On Error Do myError.prg With Error(),Message(),Message(1),Program(),Lineno(),Lineno(1)
Parameter lnError,lcMessage,lcMessage1,lcProgram,lnLineno,lnLineno1
Set Textmerge To "&pcSys_Dir.\ErrorLog.txt" Additive Noshow
\------------------------------------------------------------
\<<Date()>> <<Time()>> 错误记录
\计算机名:<<Sys(0)>>
\错误代号:<<lnError>>
\出错位置:<<lcProgram>>
\错误行号:<<lnLineno>>
\错误代码:<<lcMessage1>>
\错误含义:<<lcMessage>>
Set Textmerge To
nValue=Messagebox('程序发生错误!详细信息如下:'+Chr(13)+Chr(13)+;
'错误代号:' + Alltrim(Str(lnError)) + Chr(13) + ;
'出错位置:' + lcProgram + Chr(13) + ;
'错误行号:' + Alltrim(Str(lnLineno)) + Chr(13) + ;
'错误代码:' + lcMessage1 + Chr(13) + ;
'错误含义:' + lcMessage1,2+48+512,"提示")
Do Case
Case nValue=3
Clear Events
For i=_Screen.FormCount To 1 Step -1
_Screen.Forms(i).Release
Endfor
Case nValue=4
Retry
Case nValue=5
Return
Endcase