异常处理对效率的影响——你不知道的异常(三)

        首先,向大家道欠,今天才将三写出来。

        看过你不知道的异常(一)的同学应该会知道我接下来要写什么,那就是抛一个异常和接住异常到处理和不进行此操作在时间上有什么区别?

        首先是BLL层的代码

Public Class TestManage
    Public Function TestDemo() As String

        Throw New Exception("抛异常所用时间为:")
        Return "a"

    End Function
End Class
        下面是UI层的界面

        异常处理对效率的影响——你不知道的异常(三)_第1张图片

        这里是代码:        

Imports BLL
Public Class btnTest

    Dim sw As New Stopwatch

    Private Sub btnNotUse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNotUse.Click

        Dim j As Integer
        sw.Reset()
        sw.Restart()
        For i As Integer = 1 To 1000000
            j = j + 1
        Next
        sw.Stop()
        MsgBox("未抛异常所用时间为:" + sw.ElapsedMilliseconds.ToString)

    End Sub

    Private Sub btnUse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUse.Click

        Dim textClass As New TestManage
        Dim j As Integer
        Try

            sw.Reset()
            sw.Restart()
            For i As Integer = 1 To 1000000 - 1
                j = j + 1
            Next
            textClass.TestDemo()
        Catch ex As Exception
            sw.Stop()
            MsgBox(ex.Message + sw.ElapsedMilliseconds.ToString)
        End Try

    End Sub
End Class
        运行后,你会惊奇的发现,二者时间几乎一样,我就不给大家分享二者区别很小的图片了,大家可以自己运行,或者自己写一个Demo来试一下。

        我的电脑是I3 370的处理器,运行100W次,没有进行一场处理才用了3毫秒(只含有效数据),进行一场处理才4毫秒(只含有效数据),所以,有些事情一定要是自己做了实验之后再去下结论,从目前这个数据来看,采取异常处理,对程序的时间特性几乎没有影响(人能感觉到的时间差要远远大于这个)。

        至于系统资源的消耗问题,个人水平比较洼,对于底层的东西不甚了解,所以不评论,但个人感觉,如果用了异常会明显影响系统的性能,那么还设计出来这个干嘛呢?

        在实用和友好性上,界面的迅速我感觉是很重要的,总不能人点一个按钮得等十来秒吧。。。

你可能感兴趣的:(exception,UI,function,String,Integer,Class)