ILGenerator.BeginCatchBlock Method

July 28, 2014

Begins a catch block.

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

public virtual void BeginCatchBlock(
	Type exceptionType
)

Parameters

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

ExceptionCondition
ArgumentException

The catch block is within a filtered exception.

ArgumentNullException

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.

NotSupportedException

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.

NoteNote:

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.
//
adderIL.BeginCatchBlock(overflowType);

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


Windows Phone OS

Supported in: 8.1, 8.0, 7.1

Windows Phone

Show:
© 2014 Microsoft