set_terminate
(CRT)
Menginstal rutinitas penghentian Anda sendiri untuk dipanggil oleh terminate
.
Sintaks
terminate_function set_terminate( terminate_function termFunction );
Parameter
termFunction
Penunjuk ke fungsi penghentian yang Anda tulis.
Nilai hasil
Mengembalikan penunjuk ke fungsi sebelumnya yang didaftarkan oleh set_terminate
sehingga fungsi sebelumnya dapat dipulihkan nanti. Jika tidak ada fungsi sebelumnya yang ditetapkan, nilai pengembalian dapat digunakan untuk memulihkan perilaku default; nilai ini mungkin NULL
.
Keterangan
Fungsi set_terminate
ini diinstal termFunction
sebagai fungsi yang dipanggil oleh terminate
. set_terminate
digunakan dengan penanganan pengecualian C++ dan dapat dipanggil pada titik mana pun dalam program Anda sebelum pengecualian dilemparkan. terminate
abort
panggilan secara default. Anda dapat mengubah default ini dengan menulis fungsi penghentian Anda sendiri dan memanggil set_terminate
dengan nama fungsi Anda sebagai argumennya. terminate
memanggil fungsi terakhir yang diberikan sebagai argumen ke set_terminate
. Setelah melakukan tugas pembersihan yang diinginkan, termFunction
harus keluar dari program. Jika tidak keluar (jika kembali ke pemanggilnya), abort
dipanggil.
Di lingkungan multithreaded, fungsi penghentian dipertahankan secara terpisah untuk setiap utas. Setiap utas baru perlu menginstal fungsi penghentiannya sendiri. Dengan demikian, setiap utas bertanggung jawab atas penanganan penghentiannya sendiri.
terminate_function
Jenis didefinisikan dalam EH. H sebagai penunjuk ke fungsi penghentian yang ditentukan pengguna, termFunction
yang mengembalikan void
. Fungsi termFunction
kustom Anda tidak dapat mengambil argumen dan tidak boleh kembali ke pemanggilnya. Jika ya, abort
dipanggil. Pengecualian mungkin tidak dilemparkan dari dalam termFunction
.
typedef void ( *terminate_function )( );
Catatan
Fungsi set_terminate
ini hanya berfungsi di luar debugger.
Ada satu set_terminate
handler untuk semua DLL atau EXE yang ditautkan secara dinamis; bahkan jika Anda memanggil set_terminate
handler Anda dapat digantikan oleh yang lain, atau Anda mungkin mengganti handler yang ditetapkan oleh DLL atau EXE lain.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
set_terminate |
<eh.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Lihat contoh untuk terminate
.
Lihat juga
Rutinitas penanganan pengecualian
abort
_get_terminate
set_unexpected
terminate
unexpected