Обработка ошибок
Материал из cppreference.com
< c
Номера ошибок
Определены в заголовочном файле
<errno.h> | |
| макрос, который расширяется в POSIX-совместимую переменную с номером ошибки, локальную в потоке (переменная-макрос) | |
| макросы для стандартных POSIX-совместимых условий ошибки (макроконстанта) | |
Утверждения
Определены в заголовочном файле
<assert.h> | |
завершает программу, если определённое пользователем условие не равно true. Может отключаться для сборки релиза (функция-макрос) | |
(C11)(удалено в C23) |
выдаёт во время компиляции диагностическое сообщение, если значение константного выражения ложь (ключевое слово-макрос) |
Проверка выхода за границыСтандартная библиотека предоставляет для некоторых существующих функций версии с проверкой выхода за границы (gets, fopen, printf, strcpy, wcscpy, mbstowcs, qsort, getenv, и т. д.). Эта функциональность необязательна и доступна только если
Замечание: реализации функций с проверкой границ доступны в библиотеках с отрытым исходным кодом Safe C и Slibc, как часть Watcom C. Также существует несовместимый набор функций с проверкой границ в Visual Studio. |
(начиная с C11) | ||||||||||||||||||||||||||||||||
Замечания
Начиная с C23, static_assert является ключевым словом, которое может быть также и предопределённым макросом, так что <assert.h> больше его не предоставляет.
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.2 Диагностика <assert.h> (стр. 186-187)
- 7.5 Ошибки <errno.h> (стр. 205)
- 7.19 Основные определения <stddef.h> (стр. 288)
- 7.20 Целые типы <stdint.h> (стр. 289-295)
- 7.21 Ввод/вывод <stdio.h> (стр. 296-339)
- 7.22 Общие утилиты <stdlib.h> (стр. 340-360)
- K.3.1.3 Использование errno (стр. 584)
- K.3.2/2 errno_t (стр. 585)
- K.3.3/2 rsize_t (стр. 585)
- K.3.4/2 RSIZE_MAX (стр. 585)
- 7.31.3 Ошибки <errno.h> (стр. 455)
- 7.31.10 Целые типы <stdint.h> (стр. 456)
- 7.31.11 Ввод/вывод <stdio.h> (стр. 456)
- 7.31.12 Общие утилиты <stdlib.h> (стр. 456)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.2 Диагностика<assert.h> (стр. 169)
- 7.5 Ошибки <errno.h> (стр. 186)
- 7.26.3 Ошибки <errno.h> (стр. 401)
- 7.26.8 Целые типы <stdint.h> (стр. 401)
- 7.26.9 Ввод/вывод <stdio.h> (стр. 402)
- 7.26.10 Общие утилиты <stdlib.h> (стр. 402)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.2 ДИАГНОСТИКА <assert.h>
- 4.1.3 Ошибки <errno.h>
- 4.13.1 Ошибки <errno.h>
- 4.13.6 Ввод/вывод <stdio.h>
- 4.13.7 Общие утилиты <stdlib.h>
См. также
(C99)(C99)(C99) |
определяет механизм обработки ошибок, используемый основными математическими функциями (макроконстанта) |
Документация C++ по обработке ошибок
| |