TryExpression Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen try-/catch-/finally-/fault-Block dar.
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
- Vererbung
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie mithilfe der -Methode ein TryExpression Objekt erstellt wird, das TryCatch eine catch-Anweisung enthält.
// 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
Hinweise
Der Textblock wird durch den Try-Block geschützt.
Die Handler bestehen aus einer Reihe von CatchBlock Ausdrücken, die entweder catch-Anweisungen oder Filter sein können.
Der Fehlerblock wird ausgeführt, wenn eine Ausnahme ausgelöst wird.
Der letzte Block wird unabhängig davon ausgeführt, wie die Steuerung den Text verlässt.
Es kann nur einer der Fehler- oder endgültigen Blöcke angegeben werden.
Der Rückgabetyp des Try-Blocks muss mit dem Rückgabetyp aller zugeordneten Catch-Anweisungen übereinstimmen.
Eigenschaften
Body |
Ruft die Expression ab, die den Text des try-Blocks darstellt. |
CanReduce |
Gibt an, dass der Knoten zu einem einfacheren Knoten reduziert werden kann. Wenn true zurückgegeben wird, kann Reduce() aufgerufen werden, um das reduzierte Formular zu erzeugen. (Geerbt von Expression) |
Fault |
Ruft die Expression ab, die den fault-Block darstellt. |
Finally |
Ruft die Expression ab, die den finally-Block darstellt. |
Handlers |
Ruft die Auflistung der CatchBlock-Ausdrücke ab, die dem try-Block zugeordnet sind. |
NodeType |
Gibt den Knotentyp dieses Expression zurück. |
Type |
Ruft den statischen Typ des Ausdrucks ab, den dieser Expression darstellt. |
Methoden
Accept(ExpressionVisitor) |
Sendet an die spezifische Visit-Methode für diesen Knotentyp. Beispielsweise ruft MethodCallExpression die Methode VisitMethodCall(MethodCallExpression) auf. (Geerbt von Expression) |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Reduce() |
Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Geerbt von Expression) |
ReduceAndCheck() |
Reduziert diesen Knoten zu einem einfacheren Ausdruck. Wenn CanReduce true zurückgibt, sollte ein gültiger Ausdruck zurückgegeben werden. Diese Methode kann einen anderen Knoten zurückgeben, der selbst reduziert werden muss. (Geerbt von Expression) |
ReduceExtensions() |
Reduziert den Ausdruck zu einem bekannten Knotentyp (kein Erweiterungsknoten) oder gibt nur den Ausdruck zurück, wenn es sich um einen bereits bekannten Typ handelt. (Geerbt von Expression) |
ToString() |
Gibt eine Textdarstellung des Expression zurück. (Geerbt von Expression) |
Update(Expression, IEnumerable<CatchBlock>, Expression, Expression) |
Erstellt einen neuen Ausdruck, der diesem ähnelt, verwendet jedoch die angegebenen untergeordneten Elemente. Wenn alle untergeordneten Elemente identisch sind, wird dieser Ausdruck zurückgegeben. |
VisitChildren(ExpressionVisitor) |
Reduziert den Knoten und ruft dann den Visitor-Delegaten für den reduzierten Ausdruck auf. Die Methode löst eine Ausnahme aus, wenn der Knoten nicht reduziert werden kann. (Geerbt von Expression) |