Napáka je beseda, ki ima na različnih področjih različne pomene. Z razliko od iluzije lahko napake odpravljamo skozi znanje.

Razbitine vlaka na železniški postaji Gare Montparnasse v Parizu, Francija, 1895

Računalniško programiranje uredi

Napáka v računalništu, bodisi programa bodisi uporabnika, lahko povzroči prenehanje izvajanje programa (sesutje) ali pa nepričakovane rezultate. Programske napake ali hrošče v veliki meri odkrijejo med preskušanjem programa, toda v večini programov jih ostane še nekaj. Operacijski sistemi ob pojavitvi napake izpišejo (na zaslon, v datoteko ali na tiskalnik) sporočilo o napaki (error message). Sporočilo pove, da se je zgodila napaka, in če je mogoče, pove tudi vzrok za napako.

Računalniške napake lahko razdelimo v več vrst: sintaktične napake povzroči nepravilna uporaba programskega jezika, na primer napačno črkovanje posameznih ukazov ali pa tiskarska napaka. Te napake odkrijeta prevajalnik ali interpreter, saj zaradi njih programa ne moreta prevesti v strojno kodo (ukaze, ki jih lahko računalnik neposredno razume). Druga vrsta napak so logične napake. To so napake v zasnovi programa - na primer v vrstnem redu ukazov. Te napake lahko povzročijo nepravilen odziv programa na uporabnikove ukaze ali pa popolno sesutje programa. Napake med izvajanjem (run-time errors, execution errors) povzroči kombinacija podatkov, ki je programer ni predvidel. Tipična napaka med izvajanjem je poskus deljenja nekega števila z nič. Deljenje z nič je nemogoče, zato se izvajanje programa na tem mestu ustavi. Napake med izvajanjem se, kot pove že ime, zgodijo med izvajanjem programa, zato jih prevajalnik ali interpreter ne moreta zaznati.

Računalniki so narejeni tako, da lahko delajo s števili v določenem obsegu. Ta omejitev botruje velikemu številu napak. Napaka prekoračitve (overflow error) nastane, če je število preveliko, da bi ga računalnik še znal obravnavati, napaka podkoračitve (underflow error) pa nastane, ko je število premajhno. Napake zaokrožitve (rounding errors) in napake odreza (truncation errors) nastanejo pri zaokroževanju oziroma odrezu decimalnih mest, kar se zgodi, kadar je število decimalnih mest, ki jih omogoča računalnikova natančnost, preseženo.