热情软件屋

 

运行到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起作用了。
    

此问题由党涛回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio