admin管理员组

文章数量:1532160

2023年12月18日发(作者:)

如何用ON ERROR调试程序 电脑资料

如何用 ON ERROR 来调试应用程序 FoxPro 提供了 ON ERROR 命令来允许编程者捕捉应用程序中出现的特定错误. 本文说明如何使用一个错误捕捉例程保存有关的调试信息到一个 FoxPro 表中. 本文中的代码捕捉出现在 FoxPro 应用程序中的错误并保存以下信息到一个表中: · 错误出现的计算机名. · 错误号. · 错误信息. · 如果源代码可用, 发生错误的源代码. · 发生错误的程序. · 发生错误的行号. · 错误发生时最近选定的表. · 错误的日期和时间. 应用程序中的错误的语法和逻辑会产生许多可捕捉错误. 有些出现在应用程序中的错误在被最终用户测试前是不可知的.

当默认的 FoxPro 错误信息显示对于程序员来说是有用的信息时,

它的出现可能会使最终用户糊涂. 同样, 当应用程序执行时, 最终用户通常很少有时间小心的注意并错误的出现. 在没有人提供错误报告时, 这些代码也有助于检验断断续续出现的错误的原因. 用以下代码创建一个叫做 的程序:

ON ERROR DO errhand IN errutil ;

WITH SYS(0), ERROR(), MESSAGE(), MESSAGE(1), ;

PROGRAM(), LINENO(1), DBF(), DATE(), TIME() * 错误捕捉设置结束.

PROCEDURE errhand PARAMETER m. ___chine, um,

, de, ; og, , BL,

e, ;

e ___=SELECT() && 保存当前工作区.

er=ORDER() && 保存当前排序.

IF LEN(ALLTRIM(og))=0

og="Com ___nd Line"

STORE SPACE(0) TO de

ENDIF

utmsgline="错误 ; "++CHR(13)+"行号

"+STR()+ ; CHR(13)+ ; "程序名 =

"+og+CHR(13)+"语法 :"+de * Visual FoxPro 用户使用 =MESSAGEBOX(outmsgline,32+0) * FoxPro For Windows 用

户使用 中的 MsgBox() 函数 WAIT WINDOW

outmsgline TIMEOUT 5 && 所有版本均可使用该语法.

IF !USED("ERRORLOG")

IF FILE("")

SELECT 0 USE errorlog ELSE SELECT 0 thisversion=VERSION()

IF LEFT(ALLTRIM(thisversion),6)="Visual" * 为 Visual FoxPro

版本创建一个自由表

CREATE TABLE errorlog FREE ( ___chine c(20), messgnum

N(4,0), ; messg c(70), linecode c(70), callprog c(40), ;

inline N(6,0), OPENTABL c(25), errdate d, errtime c(8))

ELSE CREATE TABLE errorlog ( ___chine c(20), messgnum

N(4,0), ; messg c(70), linecode c(70), callprog c(40), ;

inline N(6,0), OPENTABL c(25), errdate d, errtime c(8))

ENDIF

ENDIF

ENDIF

INSERT INTO errorlog FROM MEMVAR

SELECT errorlog && 选择 errorlog 表.

USE && 关闭 errorlog 表.

SELECT ( ___) && 返回到保存的工作区.

IF !EMPTY(ALIAS())

SET ORDER TO (er)

ENDIF

RELEASE ALL LIKE um, , de,

og,

RETURN

用以下代码创建一个名为 的程序:

DO errutil && 激活 中的 ON ERROR 例程.

USE c: && 因为该文件尚不存在因此会发生错误

DO C: ON ERROR && 关闭活动的 ON ERROR 例程.

在 Visual FoxPro 命令窗口中打入以下命令: Do . 两个

Wait 窗口显示出不愉快的错误代码行. 这些信息被放入

文件中. 5 秒钟后窗口消失. 激活命令窗口, 然后打开并浏览 Errorlog 表.

模板,内容仅供参考

本文标签: 错误出现捕捉应用程序发生