TryExpression Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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) |