标题:以前网上得到的一段错误诊断代码,结果老是不正确是怎么回事?
只看楼主
琅拿度
Rank: 1
等 级:新手上路
帖 子:148
专家分:5
注 册:2016-4-7
结帖率:84.62%
已结贴  问题点数:20 回复次数:4 
以前网上得到的一段错误诊断代码,结果老是不正确是怎么回事?

On Error Do errordo With Error(), Message(), Message(1), Program(), Lineno()

Procedure errordo
Parameter merror, Mess, mess1, mprog, mlineno
Messagebox('错误号: '+Ltrim(Str(merror))+Chr(13)+'错误信息: '+Mess+Chr(13)+'错误代码: '+mess1+Chr(13)+'错误行号: '+Ltrim(Str(mlineno))+Chr(13)+'发生错误的程序名: '+mprog,0,'错误提示...')
Quit
Endproc


这是一段发生错误时,触发的提示框,mess1 显示的根本不是错误行的代码,请问怎么改?
搜索更多相关主题的帖子: 结果 错误 网上 Message 代码 
2021-07-07 15:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:20 
先对照帮助文件逐个查看命令函数的用法

坚守VFP最后的阵地
2021-07-07 15:31
琅拿度
Rank: 1
等 级:新手上路
帖 子:148
专家分:5
注 册:2016-4-7
得分:0 
以下是引用sdta在2021-7-7 15:31:42的发言:

先对照帮助文件逐个查看命令函数的用法

我查了vfp8的帮助文件,message(1)说的就是代码行,实际的结果返回的根本不是那行代码,不过行号倒是正确的,所以也不太影响排查,只是显示发生错误的“代码内容”不正确
2021-07-07 15:37
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
Visual FoxPro 9.0 语言参考
MESSAGE( ) 函数
请参阅 示例
 全部折叠 全部展开
以字符串形式返回当前错误信息,或者返回导致这个错误的程序行内容。

 
MESSAGE([1])
 

参数
[1]
当在 ON ERROR 过程中使用 MESSAGE( ) 时,包含这个参数可以返回导致这个错误的程序源代码。 注意:
MESSAGE(1) 在运行时刻中不可用。
 
当不能取得程序源代码时,MESSAGE(1) 返回下列内容之一:
 
当此行是宏替换时,返回整个程序行。
当此行是不含附加子句的命令时,返回该命令。
当程序行是含附加子句的命令时,返回命令以及三个句点 (...) 。

返回值
字符型。 MESSAGE( ) 以字符串形式返回当前错误信息,或者返回导致这个错误的程序行内容。

说明
与 ERROR( ) 不同,MESSAGE( ) 不被 RETURN 或 RETRY 重置。

示例
下面的示例显示 MESSAGE( ) 函数的输出内容。

  复制代码
ON ERROR DO Errhand
*** 下面的行将产生一个错误 ***
USE Nodatabase
ON ERROR     && 恢复系统错误处理程序
PROCEDURE Errhand
? '发生代码的行: ' + MESSAGE(1)
? '错误号: ' + STR(ERROR( ))
? '错误信息: ' + MESSAGE( )
 

坚守VFP最后的阵地
2021-07-07 15:42
琅拿度
Rank: 1
等 级:新手上路
帖 子:148
专家分:5
注 册:2016-4-7
得分:0 
以下是引用sdta在2021-7-7 15:42:15的发言:

我的那句命令是包含宏替换的,但也没返回这个程序行啊,按照以前的经验,大多数都是返回一句“select xxx”,跟发生问题的行一点关系都没有
2021-07-07 15:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506193-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.387887 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved