今日是:
  小新技术网 -=> 程序开发 -=> VB编程 -=> 正文

VB6中使用的错误处理

作者:[本站整理] 来源:[本站] 浏览:[] 评论:[]  【字体:

 那么 使用错误捕获是否会影响速度呢?

  是的,使用错误处理将会降低一些性能,在。Net 中,使用 Try Catch 也将会影响性能,所以我们使用Reflector 反编译微软的类库时,会发现他的子过程很少使用 Try 来捕获错误,基本都是采用可预知的方式来判断可能出现的错误,并做相应处理。

  实际上,使用错误捕获后,编译后的代码实际上做了很多不为我们所知的操作,虽然 使用错误捕获从一定程度上方便了编码过程,却牺牲了一定的速度,有利有弊,所以我们应该正确的使用 错误捕获。

  测试的VB6代码

  

  Option Explicit

  

  Dim cn As New ADODB.Connection

  Dim rs As New ADODB.Recordset

  Dim m_FldsName() As String

  

  Private Sub Command1_Click()

  

   Dim II As Long

   Dim t As Single

  

   cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=广商;Data Source=SUPER"

   rs.Open "Select * from FldSet ", cn, adOpenKeyset

  

   Do Until rs.EOF = True

    rs.MoveNext

   Loop

  

   rs.MoveFirst

   t = Timer

  

   ReDim m_FldsName(rs.Fields.Count)

   For II = 0 To rs.Fields.Count - 1

    m_FldsName(II) = rs.Fields(II).Name

   Next

  

   Do Until rs.EOF = True

    ReadFieldsNotOnErr "Err1"

    ReadFieldsNotOnErr "TableName"

    ReadFieldsNotOnErr "Err2"

  rs.MoveNext

   Loop

   MsgBox "NotErr:" & Timer - t

 On Error Resume Next

   rs.MoveFirst

   t = Timer

   Do Until rs.EOF = True

    ReadFieldsOnErr "Err1"

    ReadFieldsOnErr "TableName"

    ReadFieldsOnErr "Err2"

    rs.MoveNext

   Loop

   MsgBox "OnErr:" & Timer - t

  

   rs.Close

   cn.Close

  

  End Sub

  

  Private Sub ReadFieldsOnErr(FieldName As String)

   Dim v As Variant

   v = rs(FieldName).Value

  End Sub

  

  Private Sub ReadFieldsNotOnErr(FieldName As String)

   Dim II As Long

   Dim IsExists As Boolean

   Dim v As Variant

   IsExists = False

  

   For II = 0 To UBound(m_FldsName) - 1

    If m_FldsName(II) = FieldName Then

     IsExists = True

     Exit For

    End If

   Next

  

   If IsExists = True Then

    v = rs(FieldName).Value

   End If

  End Sub

  

  ===================================

  

  测试结果:

  无错误时

  ReadFieldsOnErr : 0。46

  ReadFieldsNotOnErr : 0。47

  有错误时

  ReadFieldsOnErr : 0.96

  ReadFieldsNotOnErr : 0.47

  可以看到:不使用错误处理,速度相当稳定,而使用错误处理时,有错误的情况下速度落差较大。所以 对于在循环中 频繁调用 的子过程,建议对可能出现的错误进行预处理,减少使用 On error来提升速度。

下一篇:用VB编程实现图像的熠熠生辉效果
上一篇:VB.NET中使用Directsound9之简单播放
IP查询、IP签名
打印 】【 收藏 】【 评论 】【 推荐
相关文章 栏目推荐文章 栏目热门文章
 推荐文章 学习,是一条漫长的道路 
 普通文章 用VB跟我学做记事本(很简单哟) 
 普通文章 VB中简单木马程序的编写 
 普通文章 利用VB6.0设计屏幕保护程序 
 普通文章 Jave学习:巧用jabc进行数据库的操.. 
 普通文章 VB能做什么  
 普通文章 用VB学做“黑客”程序 
 普通文章 用VB在窗口中显示动画图标 
 普通文章 浅谈用VB6.0编写“特洛伊木马”程.. 
最新文章 最新推荐文章 热门文章
 普通文章 简历封面 
 普通文章 简历封皮(二) 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 普通文章 只需三步!闪盘立刻变成启动盘 
 普通文章 战无不胜 一目了然看穿局域网 
 普通文章 Win 2000/XP在局域网内批量升级 
 普通文章 黑客经常更改的系统配置文件及注册.. 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 推荐文章 Ghost二十个鲜为人知的实用参数 
 推荐文章 ASP.NET程序中常用的三十三种代码.. 
 推荐文章 黑客利用Ms05002溢出找“肉鸡” 
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 Ghost所有运行错误代码完全大揭秘.. 
 推荐文章 利用Java Swing 实现游戏开发 
 推荐文章 秘籍:QQ头像任意换 
 普通文章 提升QQ等级 QQ挂机升级外挂  
 普通文章 QQ100个经典个性签名!可爱经典贴图.. 
 推荐文章 BIOS设置图解教程(多图) 
 普通文章 惊现腾讯QQ刷等级漏洞 
 普通文章 求职简历封皮  
 普通文章 突破在线观看电影 
 普通文章 GIF动画图片制作教程 
点击查看更多评论
笔名:
评论:
[评论将在5分钟内被审核,请耐心等待]
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright ©2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网  冀ICP备05002857号