Nenormalan završetak je nagli i neočekivani prekid funkcioniranja računalnog programa ili aplikacije. Njegovo ime izvorno potječe od starijeg operacijskog sustava IBM 360, koji je takve prekide bilježio kao greške ABEND. Nenormalan završetak programa može se dogoditi iz mnogo različitih razloga, ali najčešći razlozi uključuju probleme s memorijom sustava ili probleme unutar koda softvera. Kada dođe do ove vrste prekida, program se sam zatvara i operativni sustav djeluje kako bi ublažio štetu ispiranjem memorije programa i ponašajući se kao da se program uspješno zatvorio u tipičnim situacijama.
Problemi unutar memorije sustava na računalu mogu izazvati nenormalan prekid rada jednog ili više programa na sustavu. Kada računalo dopusti da dođe do curenja memorije – kada dopušta programu da upisuje u memoriju koju mu operacijski sustav nije dodijelio – može nehotice prebrisati dijelove memorije koji su pripadali drugom programu. Jednom kada “napadnuti” program pokuša povratiti informacije pohranjene u napadnutim dijelovima memorije, više neće pronaći točne, očekivane podatke. Ovo odstupanje često rezultira potpunim rušenjem aplikacije, budući da se ne može pokrenuti korištenjem prebrisanih informacija koje je spremio napadni program.
Problemi sa softverskim kodom ponekad mogu izazvati nenormalan završetak programa. Ako softver ima bugove ili ne sadrži dovoljan kod za rukovanje pogreškama, netočni unosi krajnjeg korisnika mogu dovesti do nenormalnog ukidanja softvera. Na primjer, program koji od krajnjeg korisnika traži da unese svoj telefonski broj obično će biti kodiran tako da se svaki nenumerički odgovor koji ne sadrži 10 znamenki odmah “ulovi” kao potencijalnu pogrešku i vrati krajnjem korisniku kao loš rezultat. Nezreli ili nepotpuni softver koji ne uključuje ovaj kod za obradu pogreške može se srušiti nakon primanja netočnog unosa; program se neće moći nositi ako krajnji korisnik odluči unijeti “abcdefg” kao svoj tobožnji telefonski broj.
Nakon što dođe do nenormalnog završetka, operativni sustav obično upozorava korisnika računala da je došlo do prekida programa. Nakon što to učinite, zadatak operacijskog sustava je oporaviti se od pada bez negativnog utjecaja na bilo koji drugi program u sustavu. Da bi to učinio, obično oslobađa memoriju koju je dodijelio programu, točno kao što bi bio da je program uspješno prekinut. Informacije o neuobičajenom prekidu programa često se spremaju u zapisnike o rušenju operativnog sustava, omogućujući krajnjem korisniku da pregleda informacije o rušenju kako bi potražio potencijalni temeljni uzrok sukoba.