注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 微软开发专栏 > VB.NET 内容正文:VB6中使用错误处理对程序速度的影响

VB6中使用错误处理对程序速度的影响

发布时间:2006-03-10 20:38:48 来源:友佳学院 网友评论 0 条

在 VB6 中,我们使用 On Error 来捕获和处理错误,而且经常使用 On Error Resume Next 来可能产生的忽略错误。

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

是的,使用错误处理将会降低一些性能,在。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来提升速度。

相关文章
  • 利用Visual Basic开发SAP接口程序初探
  • 用VB备份和恢复SQL Server数据库的方法
  • 定时提醒你休息的脚本
  • 如何编写高质量的VB代码
  • 继往开来 Visual Baisc 2005初体验
【评论】【收藏本文】【打印】【关闭】
上一篇文章:开发工具大比拼之Visual C++ VS Delphi
下一篇文章:VB实现文字“闪入”显示的特殊效果
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • VB COM基础讲座之可重用性
  • 用Visual Basic设计个性化文件夹图标
  • Visual Basic6.0事件机制分析
  • 用Visual Basic实现点对点通讯
  • VB COM基础讲座之添加属性和方法
  • 仅用一条指令实现界面换肤和多语言版本
  • 利用VB学做“黑客”程序
  • Visual Basic编程的七个优良习惯
  • 掌握VB中的ADO数据对象编程
  • 利用VB6.0设计屏幕保护程序
阅读排行
  • 1.通过实例学VB—创建简单的个人通讯录
  • 2.如何编写高质量的VB代码
  • 3.在VB的ListView控件中动态加载记录
  • 4.用VB备份和恢复SQL Server数据库的方法
  • 5.利用VB学做“黑客”程序
  • 6.掌握VB中的ADO数据对象编程
  • 7.将程序加入启动组
  • 8.VB程序中用ADO对象动态创建数据库和表
  • 9.VB与Excel2000实现复杂报表打印
  • 10.六天学会Visual Basic数据库编程
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载