Logična napaka je težava s programsko kodo računalnika, ki je ni mogoče zlahka prepoznati, ko je koda napisana ali prevedena. Včasih se imenuje pomenska napaka, logična napaka je na splošno krivda programerja; tudi če je kodiranje pravilno, je rezultat morda še napačen. Če je prevajalnik programskega jezika dobavljen z logično napako, bo uspešno interpretiral dobavljeno kodo, kar bo povzročilo delujoč program, ki bi lahko vrnil napačne podatke.
Programerju je težko ujeti logične napake, ker tolmač programskega jezika te napake ne prepozna kot težavo. Ko je koda uspešno izvedena, se lahko rezultati brez namernega pregleda sprva zdijo pravilni. Za odkrivanje tovrstnih napak mora oseba, ki pozna pričakovane rezultate in funkcijo programa, pregledati rezultate in delovanje tega programa.
Če želite najti logično napako v kodi, morate biti sposobni metodično slediti viru napake. Napaka je lahko posledica napačno kodirane sintakse. Sintaksa kode se morda zdi pravilna, vendar lahko povzroči logično napako. Te vrste napak so lahko zelo drage težave, če jih ne odpravite pravočasno.
Logične napake so lahko tudi posledica napačnih podatkov, ki jih je uporabil pravilno napisan program brez lastnih notranjih logičnih napak. To je enakovredno običajnemu izrazu “smeti noter, smeti ven”. Če so podatki napačno vneseni v program, tudi če se program izvaja pravilno, je rezultat napaka v primerjavi s pričakovanim.
Kot primer druge vrste logične napake, medtem ko se voznik pri znaku za ustavitev lahko odloči, da zavije desno ali zavije levo. Če voznik zavije v desno, ko je bil predvideni cilj levo, se to šteje za logično napako. Tehnično je voznik pravilno upravljal vozilo, vendar končni rezultat ni bil takšen, kot je bilo pričakovano. Kot je prikazano v tem primeru, napake v logiki niso omejene na področje računalniškega programiranja. Logična napaka se lahko kategorizira tudi kot zmota v zvezi s komunikacijami.
V drugem primeru, v katerem obstajajo logične napake, lahko urejevalniki besedil včasih uporabljajo avtomatsko preverjanje črkovanja; ti črkovalniki so znani po manjkajočih logičnih napakah. Na primer, samostalnik “prodaja” je lahko napačno predstavljen s samostalnikom “jadro” v stavku. Vsaka beseda je pravilno črkovana, zveni pravilno in je lahko slovnično pravilna znotraj stavka, vendar definicija ene besede morda ne ustreza kontekstu določenega stavka.