★▲★▲如何取得语句所在代码中的行号???
在Runtime error时,大家是怎么进行错误处理的,VB自带的ErrObject提供的信息好少,只告诉错误的原因,并不告诉错误的位置,自己在函数里面写,最精确也只能定位到函数,却无法定位到在第几行出错。。。调试好费时间
各位高手前辈是怎么解决的,有更好的定位错误的方法吗?
问题点数:100、回复次数:18Top
1 楼rainivy(天涯远不远?-----不远。人已在天涯,天涯又怎么会远?)回复于 2005-01-18 15:52:11 得分 5
你去掉错误捕捉不就会提示哪行出错了?Top
2 楼zqfleaf(动力港湾)回复于 2005-01-18 15:53:10 得分 5
调试的时候
工具->选项->通用->选择发生错误时中断Top
3 楼libralibra(食食物者为俊杰: U don't try, U don't know)回复于 2005-01-18 15:57:10 得分 5
直接停在出错的那行啊,黄色突出显示的,怎么会不知道呢?Top
4 楼CoolMaker()回复于 2005-01-18 16:05:02 得分 0
我没说清楚
我是说编译成exe文件后,在客户那里出错了,没办法用代码调试Top
5 楼hdhai9451(☆新人类☆)回复于 2005-01-18 16:12:02 得分 5
用Err對象找錯誤
Err.Number 錯誤號
Err.Description 錯誤描述
Top
6 楼daisy8675(莫依 沉迷)回复于 2005-01-18 16:12:24 得分 5
他出个什么错误,怎么操作出错的,VB一般没有办法的,一般都是用错误处理过掉。
Top
7 楼viena(维也纳N02)回复于 2005-01-18 16:12:45 得分 5
设一个全局变量,标志是否调试状态,运行加个 -debug参数表示以调试状态运行(用comman函数接收参数)
调试状态,把容易出错的地方,比如SQL语句等,包括时间、位置等,写入日志(文本文件)Top
8 楼viena(维也纳N02)回复于 2005-01-18 16:12:54 得分 5
设一个全局变量,标志是否调试状态,运行加个 -debug参数表示以调试状态运行(用comman函数接收参数)
调试状态,把容易出错的地方,比如SQL语句等,包括时间、位置等,写入日志(文本文件)Top
9 楼hdhai9451(☆新人类☆)回复于 2005-01-18 16:14:42 得分 5
大概格式這樣
Private Sub Command1_Click()
on error goto errmsg
................
.......
exit sub
errmsg:
if Err.Number<>0 then
msgbox "" & Err.Description
endif
End SubTop
10 楼viena(维也纳N02)回复于 2005-01-18 16:21:39 得分 5
可以使用
#If...Then...#Else
条件编译某些代码块
Top
11 楼CoolMaker()回复于 2005-01-18 16:28:52 得分 0
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
唉。。。谢谢大家这么热心帮助我,但是我的问题是:
在运行EXE文件有Runtime Error,我会把Err.Number 和 Err.Description
记录到日志文件里,但是我想在日志文件中纪录更精确的错误信息,比如出
错误位置在代码中的行号,出错误的变量名、对象名之类的,VB可以做到吗?Top
12 楼viena(维也纳N02)回复于 2005-01-18 16:48:23 得分 5
不可能的,
编译后的程序,已经没有“行号,出错误的变量名、对象名”这些概念了
Top
13 楼viena(维也纳N02)回复于 2005-01-18 16:50:51 得分 15
除非你自己得到,但那样代价太大了
比如用一个变量,每一行后,变量+1,得到当前行号Top
14 楼tmd007(学而时习之,不亦乐乎。姓菜名了字灌之号蹭之。)回复于 2005-01-18 16:53:26 得分 5
较繁杂,设陷阱Top
15 楼CoolMaker()回复于 2005-01-18 17:14:00 得分 0
设陷阱?How?Top
16 楼flashasp(flashasp)回复于 2005-01-18 17:21:45 得分 5
hdhai9451 的方法可以试试Top
17 楼wooin(魑魅魍魉)回复于 2005-01-19 10:43:36 得分 25
Err 对象
含有关于运行时错误的信息。
说明
Err 对象的属性由错误的生成者来设置,这个生成者或者是 Visual Basic,或者是对象,或者是程序设计员。
Err 对象的缺省属性是 Number。因为该缺省属性可以用对象名称 Err 表示,所以不必修改以前用 Err 函数或 Err 语句书写的代码。
当运行时错误发生时,Err 对象的属性被填入明确识别错误的信息以及处理这个错误所使用的信息。为了在代码中生成运行时错误,请用 Raise 方法。
在任意形式的 Resume 或 On Error 语句之后以及在错误处理子程序内的 Exit Sub、Exit Function、或 Exit Property 语句之后,将 Err 对象的属性重新设置为零或长度为零的字符串 ("")。可使用 Clear 方法重新明确设置 Err 。
为了对系统错误和类模块生成运行时错误,要使用 Raise 方法而不使用 Error 语句。在其它代码中是否使用 Raise 方法,这要看想要返回的信息量有多大。
Err 对象是具有全局范围的固有对象。在代码中没有必要建立这些对象的实例。
Top
18 楼CoolMaker()回复于 2005-01-20 09:02:35 得分 0
呵呵,看来还是搞不定
过年了,来者有分,Top




