CodeTryCatchFinallyStatement Class

 

Represents a try block with any number of catch clauses and, optionally, a finally block.

Namespace:   System.CodeDom
Assembly:  System (in System.dll)

System.Object
  System.CodeDom.CodeObject
    System.CodeDom.CodeStatement
      System.CodeDom.CodeTryCatchFinallyStatement

[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
public class CodeTryCatchFinallyStatement : CodeStatement

NameDescription
System_CAPS_pubmethodCodeTryCatchFinallyStatement()

Initializes a new instance of the CodeTryCatchFinallyStatement class.

System_CAPS_pubmethodCodeTryCatchFinallyStatement(CodeStatement[], CodeCatchClause[])

Initializes a new instance of the CodeTryCatchFinallyStatement class using the specified statements for try and catch clauses.

System_CAPS_pubmethodCodeTryCatchFinallyStatement(CodeStatement[], CodeCatchClause[], CodeStatement[])

Initializes a new instance of the CodeTryCatchFinallyStatement class using the specified statements for try, catch clauses, and finally statements.

NameDescription
System_CAPS_pubpropertyCatchClauses

Gets the catch clauses to use.

System_CAPS_pubpropertyEndDirectives

Gets a CodeDirectiveCollection object that contains end directives.(Inherited from CodeStatement.)

System_CAPS_pubpropertyFinallyStatements

Gets the finally statements to use.

System_CAPS_pubpropertyLinePragma

Gets or sets the line on which the code statement occurs. (Inherited from CodeStatement.)

System_CAPS_pubpropertyStartDirectives

Gets a CodeDirectiveCollection object that contains start directives.(Inherited from CodeStatement.)

System_CAPS_pubpropertyTryStatements

Gets the statements to try.

System_CAPS_pubpropertyUserData

Gets the user-definable data for the current object.(Inherited from CodeObject.)

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

CodeTryCatchFinallyStatement can be used to represent a try/catch block of code.

The TryStatements property contains the statements to execute within a try block. The CatchClauses property contains the catch clauses to handle caught exceptions. The FinallyStatements property contains the statements to execute within a finally block.

System_CAPS_noteNote

Not all languages support try/catch blocks. Call the Supports method with the GeneratorSupport.TryCatchStatements flag to determine whether a code generator supports try/catch blocks.

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 = 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");
//        }
//    }

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: