_set_error_mode

修改 __error_mode 可确定供 C 运行时为可能终止程序的错误编写错误信息的非默认位置。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数

语法

int _set_error_mode(
   int mode_val
);

参数

mode_val
错误消息的目标。

返回值

如果出现错误,则返回旧设置或 -1。

注解

通过设置 __error_mode 的值来控制错误输出接收器。 例如,您可将输出指向标准错误或使用 MessageBox API。

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.

另请参阅

assert 宏、_assert、_wassert