.NET中的错误处理

时间:2014-07-22 23:03:12   收藏:0   阅读:378


  与VB相比,VB.NET在错误处理上也有了很大的改进,下面来谈一谈异常处理和及其用


于捕捉错误的有效的编程方法。


  On Error语句

  

  VB.NET仍然包含了VB中的On Error语句,当考虑全局错误处理的时候,可以采用这种


方法。下面是实例


 On Error GoTo errorhandler
        Dim intx As Integer
        Dim intz As Integer
        Dim inty As Integer
        inty = 0
        intx = 5
        intz = CType(intx / inty, Integer)
        Exit Sub

errorhandler:
        MessageBox.Show(Err.Description)



  在学习VB的时候,经常用到这种处理错误机制,接下来谈一下VB.NET新引出的异常处


理机制



  Try...Catch...Finally

 

  Try语句块:放在代码块前面

 

  Catch语句块:用来指定应查找什么类型的错误,捕捉错误类型

 

  Finally代码块:必须执行,包含清理异常情况的例程



  Demo


Dim intx As Integer
        Dim inty As Integer
        Dim intz As Integer
        inty = 0
        intz = 5

        Try
            intz = CType((intx / inty), Integer)
        Catch objA As System.OverflowException
            MessageBox.Show("catch the divide by zero error")
            If inty = 0 Then
                ‘可以强制退出Try语句
                Exit Try
            Else
                MessageBox.Show("error not divide by 0")

            End If
        Catch
            MessageBox.Show("catch any other errors")

        Finally
            MessageBox.Show(Str(intz))
        End Try



  在此Demo中运用两个Catch,第一个捕获指定的错误,另外一个可以捕获到其他类型


的错误。


 


  我们在捕捉错误的时候,用到的是Exception类,下面就略谈一下,有关此类的方法


和属性。先看下面图片



mamicode.com,码迷


  

  以上就是有关Exception类的属性和方法,下面找几个小例子来示范一下。

  

  Source和StackTrace属性

  

   Source:一个包含产生错误的对象名称的字符串

  

   StackTrace:以文本字符串的形式保存堆跟踪


Demo


 Dim intx As Integer
        Dim inty As Integer
        Dim intz As Integer
        inty = 0
        intx = 5
        Try
            intz = CType((intx / inty), Integer)

        Catch objA As System.OverflowException
            ‘导致错误发生的事件名称
            objA.Source = "Button3_Click"
            ‘显示错误发生的详细信息
            MessageBox.Show("错误发生在" & _
                            objA.Source & objA.StackTrace)
        Finally
            MessageBox.Show(Str(intz))
        End Try

 

  GetType和ToString方法

   

   可以返回更有价值的信息,以及这些信息是怎样和何时产生的。

   

   GetType:返回已发生的错误类型的附加信息

   

   ToString:返回与错误有关的相关信息


  Demo

 

Dim intx As Integer
        Dim intz As Integer
        Dim inty As Integer
        inty = 0
        intx = 5
        Try
            intz = CType((intx / inty), Integer)
        Catch objA As System.OverflowException
            ‘返回错误的标识
            MessageBox.Show(objA.GetType.FullName)
            MessageBox.Show(objA.GetType.BaseType.FullName)
            ‘返回错误发生的位置
            MessageBox.Show(objA.ToString)
        Finally
            MessageBox.Show(Str(intz))
        End Try

  以上就是我们在做异常处理时,经常用到的方法。如果放任错误的话,那么软件使用


起来就会使用后很迷茫,所以对于软件要做好错误预处理相关机制。




 

  

 







 



.NET中的错误处理,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!