當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。