Un cod de eroare ( ing. Cod de eroare ) în programare este un număr (sau o combinație de o literă și un număr) care corespunde unei probleme specifice din program . Codurile de eroare sunt utilizate pentru a identifica funcționarea incorectă a hardware-ului și software-ului, introducerea incorectă de utilizator fără a gestiona excepția rezultată în codul programului, deși uneori codurile de eroare sunt utilizate în combinație cu gestionarea excepțiilor . Codurile de eroare nu trebuie confundate cu codurile de returnare , deși sunt adesea folosite împreună în tratarea erorilor. Unele dintre cele mai grave coduri de eroare pe care le pot întâlni utilizatorii sunt codurile Blue Screen of Death ale sistemului de operare Microsoft Windows .
În limbajele de programare cărora le lipsește un mecanism de gestionare a excepțiilor (cum ar fi C ), codurile de eroare sunt adesea stocate ca variabile globale cu nume precum errno. Codurile de eroare sunt de obicei notate prin numere, fiecare dintre acestea identificând o anumită excepție. Într-o aplicație care utilizează coduri de eroare, fiecare funcție definește de obicei un cod de returnare care indică o eroare de importanță generală. Având în vedere acest cod de returnare generic, programatorul poate examina valoarea găsită în codul de eroare global pentru a determina condițiile care au determinat apariția excepției. De exemplu, la o încercare nereușită de a deschide un fișier, funcția poate seta un cod de eroare global care indică motivul erorii și poate returna un indicator de fișier nevalid. Următorul exemplu arată cum poate fi utilizat un cod de eroare pentru a descrie cauza unei erori:
/* încercați să deschideți fișierul pentru citire */ FILE * fp = fopen ( "nume fișier" , "r" ); /* dacă fișierul nu poate fi deschis, tipăriți numărul de eroare și mesajul */ if ( fp == NULL ){ printf ( "Nu se poate deschide fișierul, eroare %d, %s \n " , errno , strerror ( errno )); /* Alternativ, poate fi folosit perror(), care oferă aceeași funcționalitate */ perror ( "Nu se poate deschide fișierul" ); }Deoarece codurile de eroare sunt de obicei variabile globale, ele pot fi accesate de oriunde în program. Ca și în cazul altor variabile globale, această ușurință de acces poate fi o sursă de probleme într-un mediu cu mai multe fire . Deoarece mai multe fire pot scrie în variabile globale în același timp, acest lucru poate duce la o condiție de cursă. Pentru a rezolva această problemă, POSIX definește o variabilă errnoca o variabilă locală de fir.