Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Вызывает функцию abort
или функцию, заданную с помощью set_terminate
.
Синтаксис
void terminate( void );
Замечания
Функция terminate
используется с обработкой исключений C++ и вызывается в следующих случаях:
Не удается найти соответствующий обработчик перехвата для создаваемого исключения C++.
исключение создано деструктором во время очистки стека;
стек поврежден после возникновения исключения.
По умолчанию terminate
вызывает функцию abort
. Это поведение по умолчанию можно изменить, создав собственную функцию завершения и вызвав функцию set_terminate
с именем этой функции в качестве аргумента. terminate
вызывает последнюю функцию, заданную в качестве аргумента для функции set_terminate
. Дополнительные сведения см. в разделе Необработанные исключения C++.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
terminate |
<eh.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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().
См. также
Процедуры обработки исключений
abort
_set_se_translator
set_terminate
set_unexpected
unexpected