BeginCatchBlock Method

ILGenerator.BeginCatchBlock Method

Begins a catch block.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public virtual void BeginCatchBlock(
	Type exceptionType


Type: System.Type
The type of the exception that is caught.


The catch block is within a filtered exception.


exceptionType is null, and the exception filter block has not returned a value that indicates that finally blocks should be run until this catch block is located.


The Microsoft intermediate language (MSIL) being generated is not currently in an exception block.

Emits a branch instruction to the end of the current exception block.


If the filter exception block returns the constant exception_execute_handler, the argument to the BeginCatchBlock is not checked. For more information, see the Common Language Infrastructure documentation. The documentation is available online; see ECMA C# and Common Language Infrastructure Standards on MSDN and Standard ECMA-335 - Common Language Infrastructure (CLI) on the Ecma International Web site.

The following example demonstrates the use of the BeginCatchBlock method. This code is part of a larger example provided for the BeginExceptionBlock method.

// Use the Leave instruction to exit a try block. You cannot branch from try
// blocks.
adderIL.Emit(OpCodes.Leave, exTryCatchFinally);

// Start the catch block for OverflowException.

// On entry to the catch block, the thrown exception is on the stack. Store it
// in a local variable.
adderIL.Emit(OpCodes.Stloc_S, thrownException);


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

© 2015 Microsoft