Makro AbnormalTermination
Menunjukkan apakah blok __try handler penghentian dihentikan secara normal. Fungsi ini hanya dapat dipanggil dari dalam blok __finally handler penghentian.
Catatan
Microsoft C/C++ Optimizing Compiler menginterpretasikan fungsi ini sebagai kata kunci, dan penggunaannya di luar sintaks penanganan pengecualian yang sesuai menghasilkan kesalahan kompilator.
Sintaks
BOOL AbnormalTermination(void);
Parameter
Makro ini tidak memiliki parameter.
Nilai kembali
Jika blok __try dihentikan secara tidak normal, nilai yang dikembalikan bukan nol.
Jika blok __try dihentikan secara normal, nilai yang dikembalikan adalah nol.
Keterangan
Blok __try berakhir biasanya hanya jika eksekusi meninggalkan blok secara berurutan setelah menjalankan pernyataan terakhir di blok. Pernyataan (seperti pengembalian, goto, lanjutkan, atau putus) yang menyebabkan eksekusi meninggalkan blok __try mengakibatkan penghentian blok yang tidak normal. Ini adalah kasus bahkan jika pernyataan seperti itu adalah pernyataan terakhir di blok __try .
Penghentian abnormal blok __try menyebabkan sistem mencari mundur melalui semua bingkai tumpukan untuk menentukan apakah penangan penghentian harus dipanggil. Ini dapat mengakibatkan eksekusi ratusan instruksi, jadi penting untuk menghindari penghentian abnormal blok __try karena pernyataan pengembalian, goto, lanjutkan, atau putus . Perhatikan bahwa pernyataan ini tidak menghasilkan pengecualian, meskipun penghentiannya tidak normal.
Untuk menghindari penghentian abnormal, eksekusi harus berlanjut ke akhir blok. Anda juga dapat menjalankan pernyataan __leave . Pernyataan __leave memungkinkan penghentian segera blok __try tanpa menyebabkan penghentian abnormal dan penalti performanya. Periksa dokumentasi pengkompilasi Anda untuk menentukan apakah pernyataan __leave didukung.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows XP [khusus aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |