TryExpression Klasa

Definicja

Reprezentuje blok try/catch/finally/fault.

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
Dziedziczenie
TryExpression

Przykłady

W poniższym przykładzie pokazano, jak utworzyć obiekt zawierający instrukcję TryExpression catch przy użyciu TryCatch metody .

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

Uwagi

Blok treści jest chroniony przez blok try.

Programy obsługi składają się z zestawu CatchBlock wyrażeń, które mogą być instrukcjami catch lub filtrami.

Blok błędów jest uruchamiany, jeśli zostanie zgłoszony wyjątek.

Na koniec blok jest uruchamiany niezależnie od tego, jak kontrolka zamyka treść.

Można dostarczyć tylko jeden z bloków błędów lub w końcu.

Zwracany typ bloku try musi być zgodny z typem zwracania wszystkich skojarzonych instrukcji catch.

Właściwości

Body

Pobiera reprezentację Expression treści bloku try.

CanReduce

Wskazuje, że węzeł można zmniejszyć do prostszego węzła. Jeśli zwraca wartość true, funkcja Reduce() może zostać wywołana w celu utworzenia skróconej postaci.

(Odziedziczone po Expression)
Fault

Expression Pobiera reprezentujący blok błędów.

Finally

Expression Pobiera reprezentujący blok w końcu.

Handlers

Pobiera kolekcję wyrażeń skojarzonych CatchBlock z blokiem try.

NodeType

Zwraca typ węzła tego Expressionelementu .

Type

Pobiera statyczny typ wyrażenia, które Expression reprezentuje.

Metody

Accept(ExpressionVisitor)

Wysyła do określonej metody wizyty dla tego typu węzła. Na przykład MethodCallExpression wywołuje element VisitMethodCall(MethodCallExpression).

(Odziedziczone po Expression)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Reduce()

Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinna zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który musi zostać zmniejszony.

(Odziedziczone po Expression)
ReduceAndCheck()

Zmniejsza ten węzeł do prostszego wyrażenia. Jeśli funkcja CanReduce zwróci wartość true, powinna zwrócić prawidłowe wyrażenie. Ta metoda może zwrócić inny węzeł, który musi zostać zmniejszony.

(Odziedziczone po Expression)
ReduceExtensions()

Zmniejsza wyrażenie do znanego typu węzła (który nie jest węzłem rozszerzenia) lub po prostu zwraca wyrażenie, jeśli jest już znanym typem.

(Odziedziczone po Expression)
ToString()

Zwraca tekstową reprezentację obiektu Expression.

(Odziedziczone po Expression)
Update(Expression, IEnumerable<CatchBlock>, Expression, Expression)

Tworzy nowe wyrażenie, które jest podobne do tego, ale przy użyciu dostarczonych elementów podrzędnych. Jeśli wszystkie elementy podrzędne są takie same, zwróci to wyrażenie.

VisitChildren(ExpressionVisitor)

Zmniejsza węzeł, a następnie wywołuje delegata gościa w wyrażeniu zredukowanym. Metoda zgłasza wyjątek, jeśli węzeł nie jest reducible.

(Odziedziczone po Expression)

Dotyczy