运行到Err.Raise时报错
编号:QA002405
建立日期: 2000年1月8日 最后修改日期:2000年1月8日
所属类别:
zh:
操作系统:win98
编程工具:vb6
问题:我在一个类(clsTest)中定义如下方法
public sub Test()
on error goto FindErr
dir "a:\test.c"
exit sub
FindErr:
err.Raise vbobjecterror+513,,"Test"
end sub
在一个form中定义如下:
private myTest as new clsTest
另外定义一个Sub
private sub MyTestSub()
on error goto finderr
mytest.test
exit sub
finderr:
msgbox err.descript
end Sub
当程序运行到err.raise vbobjecterror+513,,"test"时,报错:run-time error '-2147220997(80040201)':Test
下载例子
test3.zip。
回答:
Err.Raise用于定义自己的错误(产生一个错误,常用于部件中),具体可以见MSDN中对该方法的说明!
vbobjecterror是个常数,其值为&H80040000(十六进制),513的十六进制为&H201当程序执行到 err.raise vbobjecterror+513,,"test" 时,必然产生一个错误:run-time error '-2147220997(80040201)':Test.
该提问者可能对Raise的用法不太理解。
主持人注:Raise的用法有点特殊。在调试时,尽管你在 MyTestSub中使用了On Error,但VB仍然会显示出错提示给人的感觉是On Error没有作用。而如果编译为EXE后,VB就不显示出错提示了,这时你的On Error起作用了。
此问题由党涛回答。
| |
|
|
| |
|
|