Поделиться через


_set_error_mode

Изменяет __error_mode для определения отличного от используемого по умолчанию местоположения, куда среда выполнения C записывает сообщение об ошибке для ошибок, которые могут вызвать завершение программы.

Важно!

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

int _set_error_mode(
   int mode_val
);

Параметры

mode_val
Назначение сообщений об ошибках.

Возвращаемое значение

Возвращает старое значение или -1, если возникла ошибка.

Замечания

Управляет приемником потока ошибок, устанавливая значение __error_mode. Например, можно направить вывод в стандартную ошибку или использовать API MessageBox.

Параметру mode_val может быть присвоено одно из следующих значений:

значение Description
_OUT_TO_DEFAULT Приемник ошибок определяется значением __app_type.
_OUT_TO_STDERR Приемником ошибок является стандартная ошибка.
_OUT_TO_MSGBOX Приемником ошибок является окно сообщения.
_REPORT_ERRMODE Сообщает текущее значение __error_mode.

Если значение передается, отличное от перечисленных, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, _set_error_mode задает для errno значение EINVAL и возвращает значение -1.

При использовании с оператором assert_set_error_mode отображает инструкцию, которая завершилась сбоем в диалоговом окне, и позволяет выбрать кнопку "Игнорировать", чтобы продолжить запуск программы.

Требования

Маршрут Обязательный заголовок
_set_error_mode <stdlib.h>

Пример

// crt_set_error_mode.c
// compile with: /c
#include <stdlib.h>
#include <assert.h>

int main()
{
   _set_error_mode(_OUT_TO_STDERR);
   assert(2+2==5);
}
Assertion failed: 2+2==5, file crt_set_error_mode.c, line 8

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

См. также

Макрос assert, _assert, _wassert