红雨的容错代码(转)

该博客介绍了红雨设计的一个错误处理函数`ErrHand`,用于捕获和记录系统程序运行时的错误。函数详细记录了错误信息,包括错误代号、行号、错误信息、用户信息、系统环境和磁盘空间等。此外,还提供了根据错误类型决定是否提示用户并中止程序的逻辑。
摘要由CSDN通过智能技术生成
Local lcOldError, lcLogPath
lcLogPath = [C:/Temp/]
lcOldError = On([Error])
On Error Do ErrHand With Error(), LineNo(), Message(), Message(1), Program(), lcLogPath, .T.
Select 错误日志测试
On Error &lcOldError.
Return
* -------------------------------------------------------
* 函数: ErrHand
* 功能: 系统程序运行错误捕获
* 参数: tnError, tnLineNo, tcMessage1, tcMessage2, tcProgram, tcLogPath, IsShowMsg
* 设计: 红雨
* 时间: 2003年12月25日
* -------------------------------------------------------
Function ErrHand( tnError, tnLineNo, tcMessage1, tcMessage2, tcProgram, tcLogPath, IsShowMsg )
Local lcOldOnError
lcOldOnError = On([Error])
On Error lcOldOnError = lcOldOnError
IsShowMsg = iif(Para()=7 and Type([IsShowMsg])=[L], IsShowMsg, .T.)
*-- 以下是始终可以忽略不记录的错误
Do CASE
   Case m.tnError = 1967
If IsShowMsg
= Messagebox([数据环境己经卸载, 程序跟踪记录号: ] + TRANSFORM(m.tnError) , 0+64+0 , [错误跟踪信息])
Endif
On Error &lcOldOnError.
Return
   Case m.tnError = 1001
If IsShowMsg
= Messagebox([此功能不可用, 程序跟踪记录号: ] + TRANSFORM(m.tnError) , 0+64+0 , [错误跟踪信息])
Endif
On Error &lcOldOnError.
Return
Endcase
Local lcErrOldSafe, lcErrOldSysf, lcErrOldHour, lcErrOldCent, lcErrOldDate, lcErrOldMark
lcErrOldSafe = Set([Safe])
lcErrOldSysf = Set([Sysf])
lcErrOldHour = Set([Hour])
lcErrOldCent = Set([Cent])
lcErrOldDate = Set([Date])
lcErrOldMark = Set([Mark])
Set Safe Off
Set Sysf Off
Set Hour To 24
Set Cent On
Set Date ANSI
Set Mark To [.]
Local lcCR, IsErrSelQuit, lcErrLogPath, lcErrLogText, lcLogFileName
lcCR = Chr(13) + Chr(10)
IsErrSelQuit = .F.
lcErrLogPath = Iif( Type([tcLogPath])=[C] and DirEctory(tcLogPath), tcLogPath, Addb(Justpath(SYS(16,1))) )
Local lcSysCompIP, lcSysUserNa, lcSysUserNo, lcSqlServer, lcSqlUserID
lcSysCompIP = Iif( Type([m.SysCompIP])=[C], m.Sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值