爱问知识人 爱问教育 医院库

vb文件列表框中的一个问题

首页

vb文件列表框中的一个问题


        

提交回答
好评回答
  • 2008-12-02 21:11:00
      OnError语句:启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。语法OnErrorGoTolineOnErrorResumeNextOnErrorGoTo0OnError语句的语法可以具有以下任何一种形式:OnErrorGoToline启动错误处理程序,且该例程从必要的line参数中指定的line开始。
      line参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到line,激活错误处理程序。指定的line必须在一个过程中,这个过程与OnError语句相同;否则会发生编译时间错误。OnErrorResumeNext说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。
      访问对象时要使用这种形式而不使用OnErrorGoTo。OnErrorGoTo0禁止当前过程中任何已启动的错误处理程序。说明如果不使用OnError语句,则任何运行时错误都是致命的;也就是说,结果会导致显示错误信息并中止运行。一个“允许的”错误处理程序是由OnError语句打开的一个处理程序;一个“活动的”错误处理程序是处理错误的过程中允许的错误处理程序。
      如果在错误处理程序处于活动状态时(在发生错误和执行Resume、ExitSub、ExitFunction或ExitProperty语句之间这段时间)又发生错误,则当前过程的错误处理程序将无法处理这个错误。控件返回调用的过程。如果调用过程有一个已启动的错误处理程序,则激活错误处理程序来处理该错误。
      如果调用过程的错误处理程序也是活动的,则控件将再往回传到前面的调用过程,这样一直进行下去,直到找到一个被允许的但不是活动的错误处理程序为止。如果没有找到被允许而且不活动的错误处理程序,那么在错误实际发生的地方,错误本身是严重的。错误处理程序每次将控件返回调用过程时,该过程就成为当前过程。
      在任何过程中,一旦错误处理程序处理了错误,在当前过程中就会从Resume语句指定的位置恢复运行。注意一个错误处理程序不是Sub过程或Function过程。它是一段用行标签或行号标记的代码。错误处理程序依靠Err对象的Number属性中的值来确定错误发生的原因。
      在其它任何错误发生之前,或在调用一个可能会导致错误发生的过程之前,错误处理程序应该先测试或存储Err对象中相关的属性值。Err对象中的属性值只反映最近发生的错误。Err。Description中包含有与Err。Number相关联的错误信息。OnErrorResumeNext会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用含有OnErrorResumeNext语句的过程的语句继续运行。
      这个语句可以置运行时错误于不顾,使程序得以继续执行。可以将错误处理程序放置在错误发生的地方,而不必将控件传输到过程中的其它位置。在调用另一个过程时,OnErrorResumeNext语句成为非活动的,所以,如果希望在例程中进行嵌入错误处理,则应在每一个调用的例程中执行OnErrorResumeNext语句。
      注意当处理在访问其它对象期间产生的错误时,与其使用OnErrorGoTo指令,不如使用OnErrorResumeNext。每次和对象打交道,在不知道用代码访问哪个对象时,检查一下Err都会打消这种疑虑。可以确定是哪个对象产生错误(Err。Source中指定的对象),也可以确定是哪个对象将错误代码放在Err。
      Number中。OnErrorGoTo0停止在当前过程中处理错误。即使过程中包含编号为0的行,它也不把行0指定为处理错误的代码的起点。如果没有OnErrorGoTo0语句,在退出过程时,错误处理程序会自动关闭。在错误未发生的时候,为了防止错误处理程序代码运行,请像在下段程序中那样,在紧靠着错误处理程序的前面写入ExitSub、ExitFunction或ExitProperty语句。
      SubInitializeMatrix(Var1,Var2,Var3,Var4)OnErrorGoToErrorHandler。。。ExitSubErr 此处,错误处理程序代码在ExitSub语句之后,而在EndSub语句之前,从而与过程中的流程分开。
      错误处理程序代码可以在程序中的任何地方写入。当对象作为文件运行时,对象中未捕获的错误都被返回控制应用程序。在开发环境中,如果设置了正确选项,未捕获的错误只返回控制应用程序。请参考主应用程序的文档的有关描述,从而得知,在调试时应该设置哪些选项、如何设置这些选项以及主机能否建立类。
      如果建立一个访问其它对象的对象,则应该着手处理从那些对象返回的未处理错误。如果无法处理这种错误,请将Err。Number中的错误代码当作自己的一个错误,然后将错误回传给对象的调用者。应该将错误代码添加到vbObjectError常数上来指定这个错误。
      举例来说,如果错误代码为1052,则使用如下方法指定错误:Err。Number=vbObjectError+1052注意调用动态链接库(DLL)期间产生的系统错误不会产生例外情况,也不会被VisualBasic的错误捕获操作所捕获。当调用DLL函数时,应该(根据API的详细说明)检查每一个返回值以确定是成功还是失败,如果失败,则检查Err对象的LastDLLError属性中的值。
      简单来说,就是如果不用OnError语句,下面的代码在运行的时候出错,就会导致整个程序崩溃,退出,但是用了以后可以自己控制错误处理,不会导致整个程序崩溃。

    l***

    2008-12-02 21:11:00

其他答案

类似问题

换一换
  • 互联网 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):