當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET MethodBody.ExceptionHandlingClauses屬性代碼示例

本文整理匯總了VB.NET中System.Reflection.MethodBody.ExceptionHandlingClauses屬性的典型用法代碼示例。如果您正苦於以下問題:VB.NET MethodBody.ExceptionHandlingClauses屬性的具體用法?VB.NET MethodBody.ExceptionHandlingClauses怎麽用?VB.NET MethodBody.ExceptionHandlingClauses使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在System.Reflection.MethodBody的用法示例。


在下文中一共展示了MethodBody.ExceptionHandlingClauses屬性的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: Main

' 導入命名空間
Imports System.Reflection

Public Class Example

    Public Shared Sub Main()

        ' Demonstrate the effect of the Visual Basic When keyword, which
        ' generates a Filter clause in the Try block.
        Dim e As New Example()
        Console.WriteLine()
        e.MethodBodyExample("String argument")
        e.MethodBodyExample(Nothing)

        ' Get method body information.
        Dim mi As MethodInfo = _
            GetType(Example).GetMethod("MethodBodyExample")
        Dim mb As MethodBody = mi.GetMethodBody()
        Console.WriteLine(vbCrLf & "Method: {0}", mi)

        ' Display the general information included in the 
        ' MethodBody object.
        Console.WriteLine("    Local variables are initialized: {0}", _
            mb.InitLocals)
        Console.WriteLine("    Maximum number of items on the operand stack: {0}", _
            mb.MaxStackSize)
開發者ID:VB.NET開發者,項目名稱:System.Reflection,代碼行數:26,代碼來源:MethodBody.ExceptionHandlingClauses

示例2:

' Display exception handling clauses.
Console.WriteLine()
For Each ehc As ExceptionHandlingClause In mb.ExceptionHandlingClauses
    Console.WriteLine(ehc.Flags.ToString())

    ' The FilterOffset property is meaningful only for Filter
    ' clauses. The CatchType property is not meaningful for 
    ' Filter or Finally clauses. 
    Select Case ehc.Flags
        Case ExceptionHandlingClauseOptions.Filter
            Console.WriteLine("        Filter Offset: {0}", _
                ehc.FilterOffset)
        Case ExceptionHandlingClauseOptions.Finally
        Case Else
            Console.WriteLine("    Type of exception: {0}", _
                ehc.CatchType)
    End Select

    Console.WriteLine("       Handler Length: {0}", ehc.HandlerLength)
    Console.WriteLine("       Handler Offset: {0}", ehc.HandlerOffset)
    Console.WriteLine("     Try Block Length: {0}", ehc.TryLength)
    Console.WriteLine("     Try Block Offset: {0}", ehc.TryOffset)
Next
開發者ID:VB.NET開發者,項目名稱:System.Reflection,代碼行數:23,代碼來源:MethodBody.ExceptionHandlingClauses

示例3: MethodBodyExample

End Sub

    ' This test method is executed at the beginning of Main, to show
    ' how the Filter clause works. The Filter clause is generated by 
    ' a Visual Basic When expression. If arg is Nothing, this method
    ' throws ArgumentNullException, which is caught by the filter
    ' clause. If arg is a string, the method throws ArgumentException,
    ' which does not match the filter clause.
    '
    ' Sub Main also contains code to analyze this method, using 
    ' the properties and methods of the MethodBody class.
    Public Sub MethodBodyExample(ByVal arg As Object)

        ' Define some local variables. In addition to these variables,
        ' the local variable list includes the variables scoped to 
        ' the catch clauses.
        Dim var1 As Integer = 42
        Dim var2 As String = "Forty-two"

        Try
            ' Depending on the input value, throw an ArgumentException or 
            ' an ArgumentNullException to test the Catch clauses.
            '
            If arg Is Nothing Then
                Throw New ArgumentNullException("The argument cannot be Nothing.")
            End If
            If arg.GetType() Is GetType(String) Then
                Throw New ArgumentException("The argument cannot be a string.")
            End If
        
        ' The When expression makes this a filter clause. The expression 
        ' selects only exceptions that derive from the ArgumentException
        ' class. Other exceptions, including ArgumentException itself, 
        ' are not handled by this filter clause.
        Catch ex As ArgumentException _
            When ex.GetType().IsSubclassOf(GetType(ArgumentException))

            Console.WriteLine("Filter clause caught: {0}", ex.GetType())
        
        ' This catch clause handles the ArgumentException class, and
        ' any other class derived from Exception.
        Catch ex As Exception
            Console.WriteLine("Ordinary exception-handling clause caught: {0}", _
                ex.GetType())

        Finally
            var1 = 3033
            var2 = "Another string."
        End Try
    End Sub
End Class
開發者ID:VB.NET開發者,項目名稱:System.Reflection,代碼行數:51,代碼來源:MethodBody.ExceptionHandlingClauses

輸出:

Ordinary exception-handling clause caught: System.ArgumentException
Filter clause caught: System.ArgumentNullException

Method: Void MethodBodyExample(System.Object)
Local variables are initialized: True
Maximum number of items on the operand stack: 3

示例4:

'
'Filter
'        Filter Offset: 0
'       Handler Length: 19
'       Handler Offset: 99
'     Try Block Length: 45
'     Try Block Offset: 9
'Clause
'    Type of exception: System.Exception
'       Handler Length: 25
'       Handler Offset: 118
'     Try Block Length: 45
'     Try Block Offset: 9
'Finally
'       Handler Length: 13
'       Handler Offset: 153
'     Try Block Length: 144
'     Try Block Offset: 9
開發者ID:VB.NET開發者,項目名稱:System.Reflection,代碼行數:18,代碼來源:MethodBody.ExceptionHandlingClauses


注:本文中的System.Reflection.MethodBody.ExceptionHandlingClauses屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。