转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB==容错处理策略(全)         ★★★★

VB==容错处理策略(全)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1896 更新时间:2009/4/23 18:58:22
yInvalidSphereFormat = rayErrorBase + 2 Public Const rayLightAtEye = rayErrorBase + 3 :

   如果随后发现新定义的错误常数与其他程序发生冲突,就可以迅速地通过改变基值实现重新定义了所有的错误常量。

   将错误处理程序单独存放

   请使用Resume、Resume Next、Exit Sub/Function/Property、End Sub/Function/Property 或者 Err.Raise来结束错误处理代理程序的编写。永远不要发生从一个错误代理进入到另一个错误代理的代码处理过程。

   比如,下面的代码就发生了这种不好的情况:   

Private Sub LoadData(ByVal filename As String)
Dim fnum As Integer

   ‘文件还没有打开
    On Error GoTo FileIsClosed

    ’打开文件
    fnum = FreeFile
    Open filename For Input As fnum

   ‘文件被打开了
    On Error GoTo FileIsOpen

    ’读取数据
        :

    进入错误处理代理,关闭文件
    On Error Resume Next

FileIsOpen:
   ‘关闭文件
    Close fnum

FileIsClosed:
    ’执行其他任务
        :

   ‘结束程序
End Sub

   这段代码就存在几个问题。首先,它让人感到困惑。当添加新的错误处理代理程序时,可能就会发生误会。同时,代码中没有显示错误信息,相反,代码“安静”地执行,就好像没有发生任何错误。所以,为了防止这些,一定记住,单独地编写每块错误处理代理程序。

              理解错误处理程序的作用范围

 当程序遇到错误时,Visual Basic检查在当前程序段中是否安装了错误处理代理程序。如果安装了,控制将转移到那个程序段中。如果没有发现,Visual Basic上移到调用堆栈中的调用相应,检查是否在那个程序段中安装了错误处理代理程序。如果安装了,系统将在那个错误代理中恢复执行。如果仍没有发现,就一直上移,直到找到一个安装的错误处理代理程序。如果最终没有找到,程序将崩溃。

   因此,所有Visual Baisc代码执行时,开始要设有一个事件处理代理或者一个Main程序。这意味着,如果在每个事件处理和Main程序中放置错误处理代理程序,就能防御所有的错误发生。然后,不管程序在哪里发生错误,控制最终都能转移到这里。 不要嵌套使用错误处理程序

   错误处理代理程序运行上与其他程序有些不同,在一段错误处理代理的代码中,不可能激活另外的错误处理代理程序。换言之,一段错误处理代理程序中不能使用On Error GoTo来定义扑捉它自身错误的代码。如果其中使用了这个语句,只有当这个错误处理代理程序执行完成并返回到主代码中时,新的错误处理代理程序才可能发生效果。

   嵌套使用错误代理的事情非常容易使人困惑。在下面的代码中,如果Subroutine2产生一个错误,就不能确定是否控制将转移到Error1还是Error2中。如果Subroutine1运行正确,控制将转到Error1,但是当Subroutine1发生错误时,控制将转移到Error2:   

    On Error GoTo Error1
    Subroutine1
    Subroutine2
    Exit Sub

Error1:
    On Error GoTo Error2
    MsgBox "Error1:" & Str$(Err.Number) & "." & vbCrLf & _
        Err.Description
    Resume Next

Error2:
    MsgBox "Error2:" & Str$(Err.Number) & "." & vbCrLf & _
        Err.Description
    Resume Next

   因此,不要在一段错误处理代理程序中使用On Error语句,应该将所有的错误处理代理程序段按照顺序编写。

 

上一页  [1] [2] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台