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 endfinallyendfault 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.