OpCodes.Endfinally Bidang
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.
Mentransfer kontrol dari fault
klausul atau finally
blok pengecualian kembali ke penanganan pengecualian Common Language Infrastructure (CLI).
public: static initonly System::Reflection::Emit::OpCode Endfinally;
public static readonly System.Reflection.Emit.OpCode Endfinally;
staticval mutable Endfinally : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfinally As OpCode
Nilai Bidang
Keterangan
Tabel berikut mencantumkan format rakitan heksadesimal instruksi dan Microsoft Intermediate Language (MSIL), bersama dengan ringkasan referensi singkat:
Format | Format Rakitan | Deskripsi |
---|---|---|
DC | secara endfinal endfault |
Mengakhiri klausul finally atau fault blok pengecualian. |
Tidak ada perilaku transisi tumpukan untuk instruksi ini.
Endfinally
dan endfault
memberi sinyal akhir finally
klausul atau fault
sehingga pelepasan tumpukan dapat dilanjutkan hingga handler pengecualian dipanggil. Atau endfinally
endfault
instruksi mentransfer kontrol kembali ke mekanisme pengecualian CLI. Mekanisme kemudian mencari klausul berikutnya finally
dalam rantai jika blok yang dilindungi keluar dengan instruksi cuti. Jika blok yang dilindungi keluar dengan pengecualian, CLI akan mencari berikutnya finally
atau fault
, atau memasukkan handler pengecualian yang dipilih selama pass pertama penanganan pengecualian.
Instruksi endfinally
mungkin hanya muncul secara leksikal dalam finally
blok.
endfilter
Tidak seperti instruksi, tidak ada persyaratan bahwa blok berakhir dengan endfinally
instruksi, dan mungkin ada instruksi sebanyak endfinally
yang diperlukan dalam blok. Pembatasan yang sama ini berlaku untuk endfault
instruksi dan fault
blok.
Kontrol tidak dapat ditransfer ke blok finally
(atau fault
) kecuali melalui mekanisme pengecualian. Kontrol tidak dapat ditransfer keluar dari finally
blok (atau fault
) kecuali melalui penggunaan throw
instruksi atau menjalankan endfinally
instruksi (atau endfault
). Secara khusus, Anda tidak dapat "keluar" dari finally
blok (atau fault
) atau untuk menjalankan Ret atau Leave instruksi dalam finally
blok (atau fault
).
Perhatikan bahwa endfault
instruksi dan endfinally
adalah alias - mereka sesuai dengan opcode yang sama.
Metode berikut Emit kelebihan beban dapat menggunakan endfinally
opcode (endfault
), serta ILGenerator
metode EndExceptionBlock.