CodeCatchClause CodeCatchClause CodeCatchClause CodeCatchClause Class

定義

表示 catch 陳述式中的 try/catch 例外狀況區塊。Represents a catch exception block of a try/catch statement.

public ref class CodeCatchClause
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Serializable]
public class CodeCatchClause
type CodeCatchClause = class
Public Class CodeCatchClause
繼承
CodeCatchClauseCodeCatchClauseCodeCatchClauseCodeCatchClause
屬性

範例

下列範例程式碼示範如何CodeCatchClause使用物件來定義 try 的例外狀況處理子句 .。。catch 區塊。The following example code demonstrates using CodeCatchClause objects to define exception handling clauses of a try...catch block.

// Declares a type to contain a try...catch block.
CodeTypeDeclaration^ type1 = gcnew CodeTypeDeclaration( "TryCatchTest" );

// Defines a method that throws an exception of type System.ApplicationException.
CodeMemberMethod^ method1 = gcnew CodeMemberMethod;
method1->Name = "ThrowApplicationException";
array<CodePrimitiveExpression^>^temp = {gcnew CodePrimitiveExpression( "Test Application Exception" )};
method1->Statements->Add( gcnew CodeThrowExceptionStatement( gcnew CodeObjectCreateExpression( "System.ApplicationException",temp ) ) );
type1->Members->Add( method1 );

// Defines a constructor that calls the ThrowApplicationException method from a try block.
CodeConstructor^ constructor1 = gcnew CodeConstructor;
constructor1->Attributes = MemberAttributes::Public;
type1->Members->Add( constructor1 );

// Defines a try statement that calls the ThrowApplicationException method.
CodeTryCatchFinallyStatement^ try1 = gcnew CodeTryCatchFinallyStatement;
try1->TryStatements->Add( gcnew CodeMethodInvokeExpression( gcnew CodeThisReferenceExpression,"ThrowApplicationException", nullptr ) );
constructor1->Statements->Add( try1 );

// Defines a catch clause for exceptions of type ApplicationException.
CodeCatchClause^ catch1 = gcnew CodeCatchClause( "ex",gcnew CodeTypeReference( "System.ApplicationException" ) );
catch1->Statements->Add( gcnew CodeCommentStatement( "Handle any System.ApplicationException here." ) );
try1->CatchClauses->Add( catch1 );

// Defines a catch clause for any remaining unhandled exception types.
CodeCatchClause^ catch2 = gcnew CodeCatchClause( "ex" );
catch2->Statements->Add( gcnew CodeCommentStatement( "Handle any other exception type here." ) );
try1->CatchClauses->Add( catch2 );

// Defines a finally block by adding to the FinallyStatements collection.
try1->FinallyStatements->Add( gcnew CodeCommentStatement( "Handle any finally block statements." ) );

// A C# code generator produces the following source code for the preceeding example code:
//    public class TryCatchTest 
//    {
//        
//        public TryCatchTest() 
//        {
//            try 
//            {
//                this.ThrowApplicationException();
//            }
//            catch (System.ApplicationException ex) 
//            {
//                // Handle any System.ApplicationException here.
//            }
//            catch (System.Exception ex) 
//            {
//                // Handle any other exception type here.
//            }
//          finally {
//                // Handle any finally block statements.
//            }
//        }
//        
//        private void ThrowApplicationException() 
//        {
//            throw new System.ApplicationException("Test Application Exception");
//        }
//    }
        // Declares a type to contain a try...catch block.
        CodeTypeDeclaration type1 = new CodeTypeDeclaration("TryCatchTest");

        // Defines a method that throws an exception of type System.ApplicationException.
        CodeMemberMethod method1 = new CodeMemberMethod();
        method1.Name = "ThrowApplicationException";
        method1.Statements.Add( new CodeThrowExceptionStatement( 
            new CodeObjectCreateExpression("System.ApplicationException", new CodePrimitiveExpression("Test Application Exception")) ) );
        type1.Members.Add( method1 );

        // Defines a constructor that calls the ThrowApplicationException method from a try block.
        CodeConstructor constructor1 = new CodeConstructor();
        constructor1.Attributes = MemberAttributes.Public;            
        type1.Members.Add( constructor1 );    
    
        // Defines a try statement that calls the ThrowApplicationException method.
        CodeTryCatchFinallyStatement try1 = new CodeTryCatchFinallyStatement();
        try1.TryStatements.Add( new CodeMethodInvokeExpression( new CodeThisReferenceExpression(), "ThrowApplicationException" ) );
        constructor1.Statements.Add( try1 );                    

        // Defines a catch clause for exceptions of type ApplicationException.
        CodeCatchClause catch1 = new CodeCatchClause("ex", new CodeTypeReference("System.ApplicationException"));
        catch1.Statements.Add( new CodeCommentStatement("Handle any System.ApplicationException here.") );
        try1.CatchClauses.Add( catch1 );
        
        // Defines a catch clause for any remaining unhandled exception types.
        CodeCatchClause catch2 = new CodeCatchClause("ex");
        catch2.Statements.Add( new CodeCommentStatement("Handle any other exception type here.") );
        try1.CatchClauses.Add( catch2 );
    
        // Defines a finally block by adding to the FinallyStatements collection.
        try1.FinallyStatements.Add( new CodeCommentStatement("Handle any finally block statements.") );
    
        // A C# code generator produces the following source code for the preceeding example code:

        //    public class TryCatchTest 
        //    {
        //        
        //        public TryCatchTest() 
        //        {
        //            try 
        //            {
        //                this.ThrowApplicationException();
        //            }
        //            catch (System.ApplicationException ex) 
        //            {
        //                // Handle any System.ApplicationException here.
        //            }
        //            catch (System.Exception ex) 
        //            {
        //                // Handle any other exception type here.
        //            }
        //          finally {
        //                // Handle any finally block statements.
        //            }
        //        }
        //        
        //        private void ThrowApplicationException() 
        //        {
        //            throw new System.ApplicationException("Test Application Exception");
        //        }
        //    }

' Declares a type to contain a try...catch block.
Dim type1 As New CodeTypeDeclaration("TryCatchTest")

' Defines a method that throws an exception of type System.ApplicationException.
Dim method1 As New CodeMemberMethod()
method1.Name = "ThrowApplicationException"
method1.Statements.Add(New CodeThrowExceptionStatement( _
    New CodeObjectCreateExpression("System.ApplicationException", New CodePrimitiveExpression("Test Application Exception"))))
type1.Members.Add(method1)

' Defines a constructor that calls the ThrowApplicationException method from a try block.
Dim constructor1 As New CodeConstructor()
constructor1.Attributes = MemberAttributes.Public
type1.Members.Add(constructor1)

' Defines a try statement that calls the ThrowApplicationException method.
Dim try1 As New CodeTryCatchFinallyStatement()
try1.TryStatements.Add(New CodeMethodInvokeExpression(New CodeThisReferenceExpression(), "ThrowApplicationException"))
constructor1.Statements.Add(try1)

' Defines a catch clause for exceptions of type ApplicationException.
Dim catch1 As New CodeCatchClause("ex", New CodeTypeReference("System.ApplicationException"))
catch1.Statements.Add(New CodeCommentStatement("Handle any System.ApplicationException here."))
try1.CatchClauses.Add(catch1)

' Defines a catch clause for any remaining unhandled exception types.
Dim catch2 As New CodeCatchClause("ex")
catch2.Statements.Add(New CodeCommentStatement("Handle any other exception type here."))
try1.CatchClauses.Add(catch2)

' Defines a finally block by adding to the FinallyStatements collection.
try1.FinallyStatements.Add(New CodeCommentStatement("Handle any finally block statements."))

' A Visual Basic code generator produces the following Visual Basic source 
' code for the preceeding example code:

'            '------------------------------------------------------------------------------
'            ' <auto-generated>
'            '     This code was generated by a tool.
'            '     Runtime Version:2.0.50727.42
'            '
'            '     Changes to this file may cause incorrect behavior and will be lost if
'            '     the code is regenerated.
'            ' </auto-generated>
'            '------------------------------------------------------------------------------

'Option Strict Off
'Option Explicit On

'            'Namespace Samples

'            Public Class TryCatchTest

'                Public Sub New()
'                    MyBase.New()
'                    Try
'                        Me.ThrowApplicationException()
'                    Catch ex As System.ApplicationException
'                        'Handle any System.ApplicationException here.
'                    Catch ex As System.Exception
'                        'Handle any other exception type here.
'                    Finally
'                        'Handle any finally block statements.
'                    End Try
'                End Sub

'                Private Sub ThrowApplicationException()
'                    Throw New System.ApplicationException("Test Application Exception")
'                End Sub
'            End Class
'        End Namespace

備註

CodeCatchClause可以用來表示catch try/catch語句的例外狀況區塊。CodeCatchClause can be used to represent a catch exception block of a try/catch statement.

CatchExceptionType屬性會指定要攔截的例外狀況類型。The CatchExceptionType property specifies the type of exception to catch. LocalName屬性會指定變數的名稱, 代表已攔截到的例外狀況。The LocalName property specifies a name for the variable representing the exception that has been caught. 集合屬性包含catch區塊的語句。 StatementsThe Statements collection property contains the statements for the catch block.

建構函式

CodeCatchClause() CodeCatchClause() CodeCatchClause() CodeCatchClause()

初始化 CodeCatchClause 類別的新執行個體。Initializes a new instance of the CodeCatchClause class.

CodeCatchClause(String) CodeCatchClause(String) CodeCatchClause(String) CodeCatchClause(String)

使用例外狀況的指定區域變數名稱,初始化 CodeCatchClause 類別的新執行個體。Initializes a new instance of the CodeCatchClause class using the specified local variable name for the exception.

CodeCatchClause(String, CodeTypeReference) CodeCatchClause(String, CodeTypeReference) CodeCatchClause(String, CodeTypeReference) CodeCatchClause(String, CodeTypeReference)

使用例外狀況和例外狀況型別的指定區域變數名稱,初始化 CodeCatchClause 類別的新執行個體。Initializes a new instance of the CodeCatchClause class using the specified local variable name for the exception and exception type.

CodeCatchClause(String, CodeTypeReference, CodeStatement[]) CodeCatchClause(String, CodeTypeReference, CodeStatement[]) CodeCatchClause(String, CodeTypeReference, CodeStatement[]) CodeCatchClause(String, CodeTypeReference, CodeStatement[])

使用例外狀況、例外狀況型別和陳述式 (Statement) 集合的指定區域變數名稱,初始化 CodeCatchClause 類別的新執行個體。Initializes a new instance of the CodeCatchClause class using the specified local variable name for the exception, exception type and statement collection.

屬性

CatchExceptionType CatchExceptionType CatchExceptionType CatchExceptionType

取得或設定要用 Catch 區塊處理的例外狀況型別。Gets or sets the type of the exception to handle with the catch block.

LocalName LocalName LocalName LocalName

取得或設定 catch 子句要處理的例外狀況變數名稱。Gets or sets the variable name of the exception that the catch clause handles.

Statements Statements Statements Statements

取得 Catch 區塊中的陳述式。Gets the statements within the catch block.

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

判斷指定的物件是否等於目前的物件。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

做為預設雜湊函式。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

取得目前執行個體的 TypeGets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

建立目前 Object 的淺層複本 (Shallow Copy)。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

傳回代表目前物件的字串。Returns a string that represents the current object.

(Inherited from Object)

適用於

另請參閱