This topic has not yet been rated - Rate this topic

Expression.Throw Method (Expression)

Creates a UnaryExpression that represents a throwing of an exception.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)
public static UnaryExpression Throw(
	Expression value
)

Return Value

Type: System.Linq.Expressions.UnaryExpression
A UnaryExpression that represents the exception.

The following example demonstrates how to create a TryExpression object that uses the Throw method.

// Add the following directive to the file: 
// using System.Linq.Expressions;   

// A TryExpression object that has a Catch statement. 
// The return types of the Try block and all Catch blocks must be the same.
TryExpression tryCatchExpr =
    Expression.TryCatch(
        Expression.Block(
            Expression.Throw(Expression.Constant(new DivideByZeroException())),
            Expression.Constant("Try block")
        ),
        Expression.Catch(
            typeof(DivideByZeroException),
            Expression.Constant("Catch block")
        )
    );

// The following statement first creates an expression tree, 
// then compiles it, and then runs it. 
// If the exception is caught,  
// the result of the TryExpression is the last statement  
// of the corresponding Catch statement.
Console.WriteLine(Expression.Lambda<Func<string>>(tryCatchExpr).Compile()());

// This code example produces the following output: 
// 
// Catch block

.NET Framework

Supported in: 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.