当前位置: 首页>>代码示例>>VB.NET>>正文


VB.NET Exception.GetBaseException方法代码示例

本文整理汇总了VB.NET中System.Exception.GetBaseException方法的典型用法代码示例。如果您正苦于以下问题:VB.NET Exception.GetBaseException方法的具体用法?VB.NET Exception.GetBaseException怎么用?VB.NET Exception.GetBaseException使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Exception的用法示例。


在下文中一共展示了Exception.GetBaseException方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。

示例1: New

' Example for the Exception.GetBaseException method.
Namespace NDP_UE_VB

    ' Define two derived exceptions to demonstrate nested exceptions.
    Class SecondLevelException
        Inherits Exception
           
        Public Sub New( message As String, inner As Exception )
            MyBase.New( message, inner )
        End Sub
    End Class

    Class ThirdLevelException
        Inherits Exception
           
        Public Sub New( message As String, inner As Exception )
            MyBase.New( message, inner )
        End Sub
    End Class

    Class NestedExceptions
       
        Public Shared Sub Main( )
            Console.WriteLine( _
                "This example of Exception.GetBaseException " & _
                "generates the following output." )
            Console.WriteLine( vbCrLf & _
                "The program forces a division by 0, then throws " & _
                "the exception " & vbCrLf & "twice more, using " & _
                "a different derived exception each time:" & vbCrLf )
              
            Try
                ' This sub calls another that forces a division by 0.
                Rethrow()

            Catch ex As Exception
                Dim current As Exception
                 
                Console.WriteLine( _
                    "Unwind the nested exceptions using the " & _
                    "InnerException property:" & vbCrLf )
                 
                ' This code unwinds the nested exceptions using the 
                ' InnerException property.
                current = ex
                While Not ( current Is Nothing )
                    Console.WriteLine( current.ToString( ) )
                    Console.WriteLine( )
                    current = current.InnerException
                End While
                 
                ' Display the innermost exception.
                Console.WriteLine( _
                    "Display the base exception using the " & _
                    "GetBaseException method:" & vbCrLf )
                Console.WriteLine( _
                    ex.GetBaseException( ).ToString( ) )
            End Try
        End Sub
           
        ' This sub catches the exception from the called sub
        ' DivideBy0( ) and throws another in response.
        Shared Sub Rethrow( )
            Try
                DivideBy0( )

            Catch ex As Exception
                Throw New ThirdLevelException( _
                    "Caught the second exception and " & _
                    "threw a third in response.", ex )
            End Try
        End Sub
           
        ' This sub forces a division by 0 and throws a second 
        ' exception.
        Shared Sub DivideBy0( )
            Try
                Dim zero As Integer = 0
                Dim ecks As Integer = 1 \ zero

            Catch ex As Exception
                Throw New SecondLevelException( _
                    "Forced a division by 0 and threw " & _
                    "a second exception.", ex )
            End Try
        End Sub
    End Class
End Namespace ' NDP_UE_VB
开发者ID:VB.NET开发者,项目名称:System,代码行数:88,代码来源:Exception.GetBaseException

输出:

The program forces a division by 0, then throws the exception
twice more, using a different derived exception each time:

Unwind the nested exceptions using the InnerException property:

NDP_UE_VB.ThirdLevelException: Caught the second exception and threw a third
in response. ---> NDP_UE_VB.SecondLevelException: Forced a division by 0 and
threw a second exception. ---> System.DivideByZeroException: Attempted to div
ide by zero.
at NDP_UE_VB.NestedExceptions.DivideBy0()
--- End of inner exception stack trace ---
at NDP_UE_VB.NestedExceptions.DivideBy0()
at NDP_UE_VB.NestedExceptions.Rethrow()
--- End of inner exception stack trace ---
at NDP_UE_VB.NestedExceptions.Rethrow()
at NDP_UE_VB.NestedExceptions.Main()

NDP_UE_VB.SecondLevelException: Forced a division by 0 and threw a second exc
eption. ---> System.DivideByZeroException: Attempted to divide by zero.
at NDP_UE_VB.NestedExceptions.DivideBy0()
--- End of inner exception stack trace ---
at NDP_UE_VB.NestedExceptions.DivideBy0()
at NDP_UE_VB.NestedExceptions.Rethrow()

System.DivideByZeroException: Attempted to divide by zero.
at NDP_UE_VB.NestedExceptions.DivideBy0()

Display the base exception using the GetBaseException method:

System.DivideByZeroException: Attempted to divide by zero.
at NDP_UE_VB.NestedExceptions.DivideBy0()


注:本文中的System.Exception.GetBaseException方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。