Error handling

错误处理

错误编号

| Defined in header <errno.h> |

|:----|

| errno | 宏扩展到POSIX兼容的线程局部错误号变量(宏变量)|

| E2BIG,EACCES,...,EXDEV | 用于标准POSIX兼容错误条件(宏常量)|的宏

Assertions

| Defined in header <assert.h> |

|:----|

| assert | 如果用户指定的条件不正确,则中止程序。对于发布版本(函数宏)|可能会被禁用

| static_assert(C11)| 如果常量表达式的值为false(函数宏)|,则会发出编译时诊断

边界检查标准库提供了一些现有函数的边界检查版本(gets_s,fopen_s,printf_s,strcpy_s,wcscpy_s,mbstowcs_s,qsort_s,getenv_s等)。该功能是可选的,并且仅在定义__STDC_LIB_EXT1__时可用。以下宏和函数支持此功能。在头文件中定义在头文件中定义errno_t(C11)用于int类型的typedef,用于自我文档返回errno值的函数(typedef)定义在头文件 rsize_t C11)与size_t类型相同的typedef,用于在运行时对自己的参数进行范围检查的函数(typedef)在头文件中定义RSIZE_MAX(C11)边界检查函数的最大可接受大小,在头文件中定义在头文件中定义errno_t(C11)用于int类型的typedef,用于自我文档返回errno值的函数(typedef)在头文件中定义rsize_t(C11)一个与size_t类型相同的typedef,用于在运行时对自己的参数进行范围检查的自我文档函数(typedef)在头文件中定义RSIZE_MAX(C11)边界检查函数的最大可接受大小,扩展为可能在运行时改变的常量或变量(例如,当前分配的内存大小发生变化)(宏变量)在头文件中定义set_constraint_handler_s(C11)为边界检查函数(函数)设置错误回调abort_handler_s(C11)取消对边界检查函数的回调(函数)ignore_handler_s(C11)忽略边界检查函数的回调(函数)(自C11以来)

| Defined in header <errno.h> |

| Defined in header <stdio.h> |

| errno_t(C11)| 用于int类型的typedef,用于自我文档返回errno值的函数(typedef)|

| Defined in header <stddef.h> |

| rsize_t(C11)| 与size_t类型相同的typedef,用于在运行时对自己的参数进行范围检查的自我文档函数(typedef)|

| Defined in header <stdint.h> |

| RSIZE_MAX(C11)| 最大可接受的边界检查函数的大小,扩展为可能在运行时改变的常量或变量(例如,当前分配的内存大小发生变化)(宏变量)|

| Defined in header <stdlib.h> |

| set_constraint_handler_s(C11)| 为边界检查函数(函数)|设置错误回调

| abort_handler_s(C11)| 取消对边界检查函数(函数)|的回调

| ignore_handler_s(C11)| 忽略边界检查函数(函数)|的回调

参考

  • C11标准(ISO / IEC 9899:2011):

另请参阅

math_errhandlingMATH_ERRNOMATH_ERREXCEPT(C99)(C99)(C99)定义了常用数学函数(宏常量)使用的错误处理机制,

| C++ documentation for Error handling |