_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
может быть присвоено одно из следующих значений:
значение | Описание |
---|---|
_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.