TryExpression Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um bloqueio de tentativa/receção/final/bloqueio de faltas.
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
- Herança
Exemplos
O exemplo seguinte demonstra como criar um TryExpression objeto que contenha uma sentença catch usando o TryCatch método.
// 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
Observações
O bloqueio corporal é protegido pelo bloqueio de tentativa.
Os handlers consistem num conjunto de CatchBlock expressões que podem ser instruções catch ou filtros.
O bloco de falha executa-se se uma exceção for lançada.
O bloqueio final corre independentemente de como o controlo sai do corpo.
Só pode ser fornecido um bloco de falha ou um bloqueio final.
O tipo de retorno do bloco try deve corresponder ao tipo de retorno de quaisquer instruções de captura associadas.
Propriedades
| Name | Description |
|---|---|
| Body |
Obtém o Expression que representa o corpo do bloco de ensaio. |
| CanReduce |
Indica que o nó pode ser reduzido a um nó mais simples. Se isto devolver verdadeiro, Reduce() pode ser chamado para produzir a forma reduzida. (Herdado de Expression) |
| Fault |
Obtém a Expression representação do bloco de falha. |
| Finally |
Obtém o Expression bloco que representa o final. |
| Handlers |
Obtém a coleção de CatchBlock expressões associadas ao bloco try. |
| NodeType |
Devolve o tipo de nó deste Expression. |
| Type |
Obtém o tipo estático da expressão que isto Expression representa. |
Métodos
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Despacha para o método de visita específico para este tipo de nó. Por exemplo, MethodCallExpression chama o VisitMethodCall(MethodCallExpression). (Herdado de Expression) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Reduce() |
Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido. (Herdado de Expression) |
| ReduceAndCheck() |
Reduz este nó a uma expressão mais simples. Se o CanReduce devolver verdadeiro, isto deverá devolver uma expressão válida. Este método pode devolver outro nó que, por sua vez, deve ser reduzido. (Herdado de Expression) |
| ReduceExtensions() |
Reduz a expressão para um tipo de nó conhecido (que não é um nó de Extensão) ou simplesmente devolve a expressão se já for um tipo conhecido. (Herdado de Expression) |
| ToString() |
Devolve uma representação textual do Expression. (Herdado de Expression) |
| Update(Expression, IEnumerable<CatchBlock>, Expression, Expression) |
Cria uma nova expressão semelhante a esta, mas usando os filhos fornecidos. Se todas as crianças forem iguais, ela devolverá essa expressão. |
| VisitChildren(ExpressionVisitor) |
Reduz o nó e depois chama o delegado visitante na expressão reduzida. O método lança uma exceção se o nó não for redutível. (Herdado de Expression) |