Код ошибки (англ. Error code) в программировании, — это номер (или сочетания буквы и номера), который соответствует конкретной проблеме в работе программы. Коды ошибок используются для идентификации неправильной работы аппаратного и программного обеспечения, неверного ввода данных пользователем без обработки возникающей при этом исключительной ситуации в коде программы, хотя иногда коды ошибок используются в сочетании с обработкой исключений. Коды ошибок не следует путать с кодами возврата, хотя они часто используются вместе при обработке ошибок. Одни из самых серьёзных кодов ошибок, которые могут встретить пользователи — это коды «Синего экрана смерти» операционной системы Microsoft Windows.

Примеры

править

В языках программирования, в которых отсутствует механизм обработки исключений (например, в языке С), коды ошибок часто хранятся как глобальные переменные с именами такими как errno. Коды ошибок обычно обозначаются номерами, каждый из которых идентифицирует определенную исключительную ситуацию. В приложении, которое использует коды ошибок, каждая функция обычно определяет один код возврата, который указывает на ошибку общего значения. Получив этот обобщенный код возврата программист может проверить значение, находящееся в глобальном коде ошибки для определения условий, которые привели к возникновению исключительной ситуации. Например, при неудачной попытке открыть файл, функция может установить глобальный код ошибки, указывающий на причину ошибки и возвратить некорректный указатель на файл. Следующий пример показывает как код ошибки может быть использован для описания причины ошибки:

/* попытка открыть файл на чтение */
FILE *fp = fopen("filename", "r");  
/* если файл не может быть открыт, напечатать номер ошибки и сообщение*/
if (fp == NULL){  
    printf("Cannot open file, error %d, %s\n", errno, strerror(errno));
    /* Альтернативно можно использовать perror(), который обеспечивает ту же функциональность */
    perror("Cannot open file");
}

Так как обычно коды ошибок — глобальные переменные, то они могут быть доступны из любой точки программы. Так же как и с другими глобальными переменными, эта простота доступа может быть источником проблем в многопоточной среде. В связи с тем, что в глобальные переменные могут записывать одновременно несколько потоков, это может привести к состоянию гонки. Для решения этой проблемы, POSIX определяет переменную errno как переменную локальную к потоку (thread-local variable).

См. также

править

Ссылки

править

📚 Artikel Terkait di Wikipedia

Си (язык программирования)

(errnum) { char buf[1024]; const char *error_text = strerror_r(errnum, buf, sizeof(buf)); fprintf(stderr, "%s\n", error_text); exit(EXIT_FAILURE); } printf("%

SNMP

переменной или списка переменных. Требуемые переменные указываются в поле variable bindings (раздел поля values при этом не используется). Получение значений

PHP

контекста для их захвата: $variable = 'Hello World!'; // Использование оператора use function() use ($variable): string { return $variable; }; // Альтернативный

Erlang

c(badexample). badexample.erl:8: variable 'Y' unsafe in 'if' (line 4) badexample.erl:8: variable 'Z' unsafe in 'if' (line 4) error Правильным было бы определить

Стандартная библиотека языка C++

Содержит стандартную обработку ошибок классов, например, std::logic_error и std::runtime_error, причем оба происходят из std::exception. <utility> Реализует

DVB-S2

специальную структуру, известную как Irregular Repeat-Accumulate. Режимы VCM (Variable Coding and Modulation, переменное кодирование и модуляция) и ACM (Adaptive

Педофилия

doi:10.1007/s10508-010-9661-9. — PMID 20652734. APA Statement on DSM-5 Text Error (англ.). American Psychiatric Publishing (31 октября 2013). Дата обращения:

C++

long and incomprehensible errors, poor readability of the code, and poor error reporting. Lutz Prechelt (Universität Karlsruhe). An empirical comparison