Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wywołania abort lub funkcja określana za pomocą polecenia set_terminate.
Składnia
void terminate( void );
Uwagi
Funkcja terminate jest używana z obsługą wyjątków języka C++ i jest wywoływana w następujących przypadkach:
Nie można odnaleźć zgodnego programu obsługi catch dla zgłoszonych wyjątków języka C++.
Wyjątek zgłasza funkcja destruktora podczas odwijania stosu.
Stos jest uszkodzony po wystąpieniu wyjątku.
terminate domyślnie wywołuje abort . Tę wartość domyślną można zmienić, pisząc własną funkcję zakończenia i wywołując set_terminate przy użyciu nazwy funkcji jako argumentu. terminatewywołuje ostatnią funkcję podaną jako argument .set_terminate Aby uzyskać więcej informacji, zobacz Nieobsługiwane wyjątki języka C++.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
terminate |
<eh.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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().
Zobacz też
Procedury obsługi wyjątków
abort
_set_se_translator
set_terminate
set_unexpected
unexpected