CodeTryCatchFinallyStatement クラス

定義

任意の数の try 句と、省略可能な catch ブロックを持つ finally ブロックを表します。Represents a try block with any number of catch clauses and, optionally, a finally block.

public ref class CodeTryCatchFinallyStatement : System::CodeDom::CodeStatement
public class CodeTryCatchFinallyStatement : System.CodeDom.CodeStatement
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Serializable]
public class CodeTryCatchFinallyStatement : System.CodeDom.CodeStatement
type CodeTryCatchFinallyStatement = class
    inherit CodeStatement
Public Class CodeTryCatchFinallyStatement
Inherits CodeStatement
継承
CodeTryCatchFinallyStatement
属性

次のコード例は、CodeTryCatchFinallyStatement を使用して、例外処理のための try...catch...finally ステートメントを定義する方法を示しています。The following example code demonstrates use of a CodeTryCatchFinallyStatement to define a try...catch...finally statement for exception handling.

// 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

注釈

CodeTryCatchFinallyStatement を使用すると、コードの try/catch ブロックを表すことができます。CodeTryCatchFinallyStatement can be used to represent a try/catch block of code.

TryStatements プロパティには、try ブロック内で実行するステートメントが含まれています。The TryStatements property contains the statements to execute within a try block. CatchClauses プロパティには、キャッチされた例外を処理するための catch 句が含まれています。The CatchClauses property contains the catch clauses to handle caught exceptions. FinallyStatements プロパティには、finally ブロック内で実行するステートメントが含まれています。The FinallyStatements property contains the statements to execute within a finally block.

注意

すべての言語で try/catch ブロックがサポートされているわけではありません。Not all languages support try/catch blocks. GeneratorSupport.TryCatchStatements フラグを指定して Supports メソッドを呼び出し、コードジェネレーターが try/の catch ブロックをサポートしているかどうかを判断します。Call the Supports method with the GeneratorSupport.TryCatchStatements flag to determine whether a code generator supports try/catch blocks.

コンストラクター

CodeTryCatchFinallyStatement()

CodeTryCatchFinallyStatement クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeTryCatchFinallyStatement class.

CodeTryCatchFinallyStatement(CodeStatement[], CodeCatchClause[])

try 句および catch 句のステートメントを指定して、CodeTryCatchFinallyStatement クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeTryCatchFinallyStatement class using the specified statements for try and catch clauses.

CodeTryCatchFinallyStatement(CodeStatement[], CodeCatchClause[], CodeStatement[])

try 句、catch 句、finally ステートメントなどのステートメントを指定して、CodeTryCatchFinallyStatement クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeTryCatchFinallyStatement class using the specified statements for try, catch clauses, and finally statements.

プロパティ

CatchClauses

使用する catch 句を取得します。Gets the catch clauses to use.

EndDirectives

終了ディレクティブを含む CodeDirectiveCollection オブジェクトを取得します。Gets a CodeDirectiveCollection object that contains end directives.

(継承元 CodeStatement)
FinallyStatements

使用する finally ステートメントを取得します。Gets the finally statements to use.

LinePragma

コード ステートメントのある行を取得または設定します。Gets or sets the line on which the code statement occurs.

(継承元 CodeStatement)
StartDirectives

開始ディレクティブを含む CodeDirectiveCollection オブジェクトを取得します。Gets a CodeDirectiveCollection object that contains start directives.

(継承元 CodeStatement)
TryStatements

トライするステートメントを取得します。Gets the statements to try.

UserData

現在のオブジェクトのユーザー定義可能なデータを取得します。Gets the user-definable data for the current object.

(継承元 CodeObject)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象