Kas yra nenormali pabaiga?

Nenormali pabaiga – tai staigus ir netikėtas veikiančios kompiuterio programos ar taikomosios programos nutraukimas. Jo pavadinimas iš pradžių kilęs iš senesnės IBM 360 operacinės sistemos, kuri tokius nutraukimus pažymėjo kaip ABEND klaidas. Neįprasta programos pabaiga gali įvykti dėl įvairių priežasčių, tačiau dažniausiai pasitaikančios priežastys yra sistemos atminties arba programinės įrangos kodo problemos. Kai įvyksta tokio tipo nutraukimas, programa užsidaro pati, o operacinė sistema imasi veiksmų, kad sumažintų žalą, išvalydama programos atmintį ir veikdama taip, lyg programa būtų sėkmingai uždaryta įprastomis situacijomis.

Kompiuterio sistemos atminties problemos gali sukelti neįprastą vienos ar kelių sistemos programų pabaigą. Kai kompiuteris leidžia nutekėti atmintyje – kai leidžia programai įrašyti į atmintį, kurios jam nepriskyrė operacinė sistema – jis gali netyčia perrašyti kitai programai priklausančias atminties dalis. Kai „įsibrovusi“ programa bandys susigrąžinti informaciją, saugomą įsibrovusiose atminties dalyse, ji neberas teisingų, tikėtinų duomenų. Dėl šio neatitikimo dažnai visiškai sugenda programa, nes ji negali veikti naudojant perrašytą informaciją, kurią išsaugojo įsibrovėlis programa.

Programinės įrangos kodo problemos kartais gali sukelti neįprastą programos pabaigą. Jei programinėje įrangoje yra klaidų arba joje nėra pakankamai klaidų apdorojimo kodo, galutinis vartotojas neteisingai įveda programinės įrangos gali nenormaliai nutraukti veiklą. Pavyzdžiui, programa, kuri prašo galutinio vartotojo įvesti savo telefono numerį, paprastai bus užkoduota taip, kad bet koks neskaitinis atsakymas, kuriame nėra 10 skaitmenų, būtų nedelsiant „pagautas“ kaip galima klaida ir grąžintas galutiniam vartotojui kaip blogas rezultatas. Nesubrendusi arba neužbaigta programinė įranga, kurioje nėra šio klaidų apdorojimo kodo, gali sugesti gavus neteisingą įvestį; programa negalės susidoroti, jei galutinis vartotojas nuspręs įvesti „abcdefg“ kaip savo tariamą telefono numerį.

Pasibaigus neįprastai pabaigai, operacinė sistema paprastai įspėja kompiuterio vartotoją, kad įvyko programos nutraukimas. Tai atlikus, operacinės sistemos užduotis yra atsigauti po gedimo, nepažeidžiant jokios kitos sistemos programos. Norėdami tai padaryti, ji paprastai atlaisvina programai priskirtą atmintį, lygiai taip pat, kaip būtų, jei programa būtų sėkmingai nutraukta. Informacija apie neįprastą programos nutraukimą dažnai išsaugoma operacinės sistemos gedimų žurnaluose, todėl galutinis vartotojas gali peržiūrėti gedimo informaciją ir ieškoti galimos pagrindinės konflikto priežasties.