O eroare de logică este o problemă cu codul de programare al unui computer care nu este ușor de identificat atunci când codul este scris sau compilat. Denumită uneori eroare semantică, o eroare logică este în general vina programatorului; chiar dacă codarea este corectă, răspunsul rezultat ar putea fi încă incorect. Dacă compilatorul limbajului de programare este furnizat cu o eroare de logică, acesta va interpreta cu succes codul furnizat, rezultând un program de lucru care ar putea returna date defecte.
Erorile logice sunt greu de detectat de către programator deoarece interpretul limbajului de programare nu identifică această eroare ca fiind o problemă. După ce codul este executat cu succes, rezultatele, fără o examinare deliberată, ar putea părea inițial a fi corecte. Pentru a identifica aceste tipuri de erori, o persoană care cunoaște rezultatele așteptate și funcția programului ar trebui să examineze rezultatul și funcționarea acelui program.
Pentru a găsi o eroare logică în cod, trebuie să puteți urmări metodic sursa erorii. Eroarea poate fi rezultatul unei sintaxe codificate incorect. Sintaxa codului poate părea corectă, dar poate duce la o eroare logică. Aceste tipuri de erori pot ajunge să fie probleme foarte costisitoare dacă nu sunt corectate în timp util.
Erorile logice pot rezulta și din datele greșite care au fost utilizate de un program scris corect, fără erori de logică internă. Acest lucru este echivalent cu expresia comună „gunoi înăuntru, gunoi afară”. Dacă datele sunt introduse incorect în program, chiar dacă programul este executat corect, rezultatul este o eroare în comparație cu ceea ce era de așteptat.
Ca exemplu de alt tip de eroare logică, în timp ce se află la un semn de oprire, un șofer poate alege să vire la dreapta sau la stânga. Dacă șoferul virează la dreapta când destinația dorită era la stânga, aceasta ar fi considerată o eroare logică. Din punct de vedere tehnic, șoferul a condus vehiculul corect, dar rezultatul final nu a fost cel anticipat. După cum este ilustrat în acest exemplu, erorile de logică nu se limitează la domeniul programării computerelor. O eroare de logică poate fi, de asemenea, clasificată ca o eroare în ceea ce privește comunicațiile.
Într-un alt exemplu în care există erori de logică, procesoarele de text pot folosi uneori un verificator ortografic automat; aceste verificatoare ortografice sunt renumite pentru erorile logice lipsă. De exemplu, substantivul „vânzare” poate fi denaturat de substantivul „sail” într-o propoziție. Fiecare cuvânt este scris corect, sună corect și ar putea fi corect din punct de vedere gramatical în cadrul propoziției, dar definiția unui cuvânt s-ar putea să nu se potrivească contextului propoziției particulare.