TryExpression Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili 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
- Warisan
Contoh
Contoh berikut menunjukkan cara membuat TryExpression objek yang berisi pernyataan tangkapan dengan menggunakan TryCatch metode .
// 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
Keterangan
Blok isi dilindungi oleh blok percobaan.
Handler terdiri dari sekumpulan CatchBlock ekspresi yang dapat berupa pernyataan atau filter tangkapan.
Blok kesalahan berjalan jika pengecualian dilemparkan.
Blok akhirnya berjalan terlepas dari bagaimana kontrol keluar dari tubuh.
Hanya satu kesalahan atau akhirnya blok yang dapat disediakan.
Jenis pengembalian blok coba harus cocok dengan jenis pengembalian dari setiap pernyataan tangkapan terkait.
Properti
Body |
Expression Mendapatkan yang mewakili isi blok percobaan. |
CanReduce |
Menunjukkan bahwa simpul dapat dikurangi menjadi simpul yang lebih sederhana. Jika ini mengembalikan true, Reduce() dapat dipanggil untuk menghasilkan formulir yang dikurangi. (Diperoleh dari Expression) |
Fault |
Expression Mendapatkan yang mewakili blok kesalahan. |
Finally |
Expression Mendapatkan yang mewakili blok akhirnya. |
Handlers |
Mendapatkan kumpulan CatchBlock ekspresi yang terkait dengan blok coba. |
NodeType |
Mengembalikan jenis node dari ini Expression. |
Type |
Mendapatkan jenis statis ekspresi yang diwakili ini Expression . |
Metode
Accept(ExpressionVisitor) |
Dikirim ke metode kunjungan tertentu untuk jenis node ini. Misalnya, MethodCallExpression memanggil VisitMethodCall(MethodCallExpression). (Diperoleh dari Expression) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
Reduce() |
Mengurangi simpul ini menjadi ekspresi yang lebih sederhana. Jika CanReduce mengembalikan true, ini akan mengembalikan ekspresi yang valid. Metode ini dapat mengembalikan simpul lain yang harus dikurangi. (Diperoleh dari Expression) |
ReduceAndCheck() |
Mengurangi simpul ini menjadi ekspresi yang lebih sederhana. Jika CanReduce mengembalikan true, ini akan mengembalikan ekspresi yang valid. Metode ini dapat mengembalikan simpul lain yang harus dikurangi. (Diperoleh dari Expression) |
ReduceExtensions() |
Mengurangi ekspresi ke jenis node yang diketahui (yang bukan node Ekstensi) atau hanya mengembalikan ekspresi jika sudah menjadi jenis yang diketahui. (Diperoleh dari Expression) |
ToString() |
Mengembalikan representasi tekstual dari Expression. (Diperoleh dari Expression) |
Update(Expression, IEnumerable<CatchBlock>, Expression, Expression) |
Membuat ekspresi baru yang seperti ini, tetapi menggunakan anak-anak yang disediakan. Jika semua anak sama, itu akan mengembalikan ekspresi ini. |
VisitChildren(ExpressionVisitor) |
Mengurangi simpul lalu memanggil delegasi pengunjung pada ekspresi yang dikurangi. Metode ini memberikan pengecualian jika node tidak dapat dikurangi. (Diperoleh dari Expression) |