TryExpression Classe

Definição

Representa um bloco 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
Herança
TryExpression

Exemplos

O exemplo a seguir demonstra como criar um TryExpression objeto que contém uma instrução 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

Comentários

O bloco do corpo é protegido pelo bloco try.

Os manipuladores consistem em um conjunto de CatchBlock expressões que podem ser instruções catch ou filtros.

O bloco de falha será executado se uma exceção for gerada.

O bloco finalmente é executado independentemente de como o controle sai do corpo.

Somente um dos blocos de falha ou por fim pode ser fornecido.

O tipo de retorno do bloco try deve corresponder ao tipo de retorno de qualquer instrução catch associada.

Propriedades

Nome Description
Body

Obtém o Expression corpo representando do bloco try.

CanReduce

Indica que o nó pode ser reduzido a um nó mais simples. Se isso retornar true, Reduce() poderá ser chamado para produzir o formulário reduzido.

(Herdado de Expression)
Fault

Obtém o Expression bloco de falha que representa.

Finally

Obtém o Expression bloco de representação por fim.

Handlers

Obtém a coleção de CatchBlock expressões associadas ao bloco try.

NodeType

Retorna o tipo de nó deste Expression.

Type

Obtém o tipo estático da expressão que isso Expression representa.

Métodos

Nome Description
Accept(ExpressionVisitor)

Envia para o método de visita específico para esse 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 a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
Reduce()

Reduz esse nó a uma expressão mais simples. Se CanReduce retornar true, isso deverá retornar uma expressão válida. Esse método pode retornar outro nó que deve ser reduzido.

(Herdado de Expression)
ReduceAndCheck()

Reduz esse nó a uma expressão mais simples. Se CanReduce retornar true, isso deverá retornar uma expressão válida. Esse método pode retornar outro nó que deve ser reduzido.

(Herdado de Expression)
ReduceExtensions()

Reduz a expressão a um tipo de nó conhecido (que não é um nó de extensão) ou apenas retorna a expressão se já for um tipo conhecido.

(Herdado de Expression)
ToString()

Retorna 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 retornará essa expressão.

VisitChildren(ExpressionVisitor)

Reduz o nó e, em seguida, chama o delegado visitante na expressão reduzida. O método gerará uma exceção se o nó não for reduível.

(Herdado de Expression)

Aplica-se a