Expression.TryCatch Method (Expression, CatchBlock[])
.NET Framework (current version)
Creates a TryExpression representing a try block with any number of catch statements and neither a fault nor finally block.
Assembly: System.Core (in System.Core.dll)
Parameters
- body
-
Type:
System.Linq.Expressions.Expression
The body of the try block.
- handlers
-
Type:
System.Linq.Expressions.CatchBlock[]
The array of zero or more CatchBlock expressions representing the catch statements to be associated with the try block.
The following example demonstrates how to create a TryExpression object that contains a catch statement.
// 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
Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Show: