运用任何一个语言进行程序开发时,通常都会对程序开发中必然会出现的错误进行相应的处理。那么在VB.NET中,VB.NET错误处理往往会对运行速度有一定的影响。VB.NET中On Error 来捕获和处理错误,而且经常使用 On Error Resume Next 来可能产生的忽略错误。#t#

成都创新互联总部坐落于成都市区,致力网站建设服务有成都网站设计、成都网站建设、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
那么 使用错误捕获是否会影响速度呢?
是的,使用VB.NET错误处理将会降低一些性能,在。Net 中,使用 Try Catch 也将会影响性能,所以我们使用Reflector 反编译微软的类库时,会发现他的子过程很少使用 Try 来捕获错误,基本都是采用可预知的方式来判断可能出现的错误,并做相应处理。
实际上,使用错误捕获后,编译后的代码实际上做了很多不为我们所知的操作,虽然 使用错误捕获从一定程度上方便了编码过程,却牺牲了一定的速度,有利有弊,所以我们应该正确的使用 错误捕获。
测试的VB.NET
- 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
 
可以看到:不使用VB.NET错误处理,速度相当稳定,而使用VB.NET错误处理时,有错误的情况下速度落差较大,所以 对于在循环中 频繁调用 的子过程,建议对可能出现的错误进行预处理,减少使用 On error来提升速度。
                本文标题:VB.NET错误处理影响运行速度
                
                转载来于:http://www.csdahua.cn/qtweb/news5/528255.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网