TryExpression Klas

Definitie

Vertegenwoordigt een try/catch/finally/fault block.

public ref class TryExpression sealed : System::Linq::Expressions::Expression
public sealed class TryExpression : System.Linq.Expressions.Expression
type TryExpression = class
    inherit Expression
Public NotInheritable Class TryExpression
Inherits Expression
Overname
TryExpression

Voorbeelden

In het volgende voorbeeld ziet u hoe u een TryExpression object maakt dat een catch-instructie bevat met behulp van de TryCatch methode.

// 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
' Add the following directive to the file:
' Imports 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.
Dim tryCatchExpr As TryExpression =
       Expression.TryCatch(
           Expression.Block(
               Expression.Throw(Expression.Constant(New DivideByZeroException())),
               Expression.Constant("Try block")
           ),
           Expression.Catch(
               GetType(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(Of Func(Of String))(tryCatchExpr).Compile()())

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

Opmerkingen

Het hoofdtekstblok wordt beveiligd door het try-blok.

De handlers bestaan uit een set CatchBlock expressies die catch-instructies of filters kunnen zijn.

Het foutblok wordt uitgevoerd als er een uitzondering wordt gegenereerd.

Het laatste blok wordt uitgevoerd, ongeacht hoe het besturingselement de hoofdtekst verlaat.

Er kan slechts één fout of ten slotte blokken worden opgegeven.

Het retourtype van het try-blok moet overeenkomen met het retourtype van eventuele gekoppelde catch-instructies.

Eigenschappen

Name Description
Body

Hiermee wordt de Expression hoofdtekst van het try-blok weergegeven.

CanReduce

Geeft aan dat het knooppunt kan worden gereduceerd tot een eenvoudiger knooppunt. Als dit waar retourneert, kan Reduce() worden aangeroepen om de gereduceerde vorm te produceren.

(Overgenomen van Expression)
Fault

Hiermee haalt u het Expression vertegenwoordigingsblok op.

Finally

Hiermee haalt u het Expression vertegenwoordigingsblok op.

Handlers

Hiermee haalt u de verzameling CatchBlock expressies op die zijn gekoppeld aan het try-blok.

NodeType

Retourneert het knooppunttype van dit Expression.

Type

Hiermee haalt u het statische type van de expressie op die deze Expression vertegenwoordigt.

Methoden

Name Description
Accept(ExpressionVisitor)

Verzendt naar de specifieke bezoekmethode voor dit knooppunttype. Roept bijvoorbeeld MethodCallExpression de VisitMethodCall(MethodCallExpression).

(Overgenomen van Expression)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Reduce()

Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd.

(Overgenomen van Expression)
ReduceAndCheck()

Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd.

(Overgenomen van Expression)
ReduceExtensions()

Vermindert de expressie tot een bekend knooppunttype (dat geen extensieknooppunt is) of retourneert alleen de expressie als het al een bekend type is.

(Overgenomen van Expression)
ToString()

Retourneert een tekstuele weergave van de Expression.

(Overgenomen van Expression)
Update(Expression, IEnumerable<CatchBlock>, Expression, Expression)

Hiermee maakt u een nieuwe expressie die er als volgt uitziet, maar met behulp van de opgegeven onderliggende elementen. Als alle onderliggende items hetzelfde zijn, wordt deze expressie geretourneerd.

VisitChildren(ExpressionVisitor)

Vermindert het knooppunt en roept vervolgens de gedelegeerde van de bezoeker aan op de gereduceerde expressie. De methode genereert een uitzondering als het knooppunt niet kan worden herleid.

(Overgenomen van Expression)

Van toepassing op