• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
VB6中使用的错误处理
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
VB6中使用的错误处理
软件发布 VB6中使用的错误处理
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VB & VB.NET教程 >> VB6中使用的错误处理

VB6中使用的错误处理

添加时间: 2006-2-12 9:14:47  作者: VB教程  阅读次数:99   来源: http://www.d9soft.com

       

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

  是的,使用错误处理将会降低一些性能,在。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实现DataList横向数据交替变色 下一篇文章: VB 全屏幕图形界面及动态功能提示

相关文章:

  • 使用搜狗音乐盒下载歌曲,快带飚的体验
  • 教你如何使用Procmail 过滤mail病毒
  • Sendmail 554 错误的解决
  • 常见问题诊断方法---(常见错误篇)
  • Oracle联机日志文件丢失处理方法

相关软件:

  • SendTo+批处理实用小工具 V1.0 绿色版
  • 全国计算机等级考试模拟软件(2006年全年使用)二级Visual Basic V9.0
  • PhoXo Core Library (PCL) 图像处理库 V2.1
  • ibqsImage 图像处理组件 V2.4
  • iImgReSize图片处理组件 V3.0
  • 凌霄图像批处理专家 V4.2.1.285

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有