Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
abort Panggilan atau fungsi yang Anda tentukan menggunakan set_terminate.
Sintaks
void terminate( void );
Keterangan
Fungsi terminate ini digunakan dengan penanganan pengecualian C++ dan dipanggil dalam kasus berikut:
Handler tangkapan yang cocok tidak dapat ditemukan untuk pengecualian C++ yang dilemparkan.
Pengecualian dilemparkan oleh fungsi destruktor selama stack unwind.
Tumpukan rusak setelah melemparkan pengecualian.
terminateabort 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. Untuk informasi selengkapnya, lihat Pengecualian C++ tidak tertangani.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
terminate |
<eh.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_terminate.cpp
// compile with: /EHsc
#include <eh.h>
#include <process.h>
#include <iostream>
using namespace std;
void term_func();
int main()
{
int i = 10, j = 0, result;
set_terminate( term_func );
try
{
if( j == 0 )
throw "Divide by zero!";
else
result = i/j;
}
catch( int )
{
cout << "Caught some integer exception.\n";
}
cout << "This should never print.\n";
}
void term_func()
{
cout << "term_func() was called by terminate().\n";
// ... cleanup tasks performed here
// If this function does not exit, abort is called.
exit(-1);
}
term_func() was called by terminate().
Lihat juga
Rutinitas penanganan pengecualian
abort
_set_se_translator
set_terminate
set_unexpected
unexpected