_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.