Функция abort
Функция abort аварийно завершает выполнение программы.
Она не вызывает деструкторы локальных и глобальных объектов,
не выполняет очистку буферов ввода-вывода и не вызывает
функции, зарегистрированные через atexit.
Функция не принимает параметров и не возвращает значения.
При вызове abort программа немедленно завершается
с ненулевым кодом возврата, сигнализируя об аварийной ситуации.
Функция объявлена в заголовочном файле <cstdlib>.
Обычно она используется для немедленного прекращения работы
программы при обнаружении критической ошибки, которую
невозможно обработать.
Синтаксис
void abort();
Пример
Давайте вызовем функцию abort при обнаружении
критической ошибки. Обратите внимание, что сообщение
после вызова abort уже не будет выведено:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int value = -1;
if (value < 0) {
cout << "Critical error!" << endl;
abort();
}
cout << "This line will not be printed" << endl;
return 0;
}
Результат выполнения кода:
"Critical error!"
Пример
Давайте убедимся, что при вызове abort деструкторы
локальных объектов не выполняются. В данном примере
деструктор объекта так и не будет вызван:
#include <iostream>
#include <cstdlib>
using namespace std;
class Test {
public:
~Test()
{
cout << "Destructor called" << endl;
}
};
int main()
{
Test obj;
cout << "Before abort" << endl;
abort();
cout << "After abort" << endl;
return 0;
}
Результат выполнения кода:
"Before abort"