Un sfârșit anormal este o întrerupere bruscă și neașteptată a unui program sau aplicație de calculator funcțional. Numele său derivă inițial din sistemul de operare IBM 360 mai vechi, care a notat astfel de terminări ca erori ABEND. O terminare anormală a unui program poate apărea din mai multe motive diferite, dar cele mai frecvente motive implică probleme cu memoria sistemului sau probleme cu codul software-ului. Când are loc acest tip de terminare, programul se închide de la sine, iar sistemul de operare intervine pentru a atenua daune prin spălarea memoriei programului și comportând ca și cum programul s-ar fi închis cu succes în situații tipice.
Problemele din memoria sistemului de pe un computer pot declanșa oprirea anormală a unuia sau mai multor programe de pe sistem. Atunci când computerul permite să apară o scurgere de memorie – când permite unui program să scrie în memoria care nu i-a fost atribuită de sistemul de operare – poate suprascrie din greșeală porțiuni de memorie care au aparținut altui program. Odată ce programul „invadat” încearcă să recupereze informațiile stocate în secțiunile invadate ale memoriei, nu va mai găsi datele corecte, anticipate. Această discrepanță duce adesea la o blocare completă a aplicației, deoarece aceasta nu poate rula folosind informațiile suprascrise salvate de programul invadator.
Problemele legate de codul software uneori pot declanșa un sfârșit anormal al unui program. Dacă software-ul are erori sau nu conține suficient cod de gestionare a erorilor, intrările incorecte ale utilizatorului final pot duce la o terminare anormală a software-ului. De exemplu, un program care cere utilizatorului final să introducă numărul său de telefon va fi de obicei codificat astfel încât orice răspuns nenumeric care nu conține 10 cifre să fie imediat „prins” ca o potențială eroare și returnat utilizatorului final ca un rezultat prost. Software-ul imatur sau incomplet care nu include acest cod de gestionare a erorilor se poate bloca la primirea unei intrări incorecte; programul nu va putea face față dacă utilizatorul final decide să introducă „abcdefg” ca presupusul său număr de telefon.
Odată ce are loc un sfârșit anormal, sistemul de operare avertizează de obicei utilizatorul de computer că a avut loc o terminare a programului. După ce faceți acest lucru, sarcina sistemului de operare este să revină după accident fără a afecta negativ niciunul dintre celelalte programe de pe sistem. Pentru a face acest lucru, de obicei eliberează memoria pe care a atribuit-o programului, exact așa cum ar fi dacă programul s-ar fi terminat cu succes. Informațiile despre terminarea anormală a programului sunt adesea salvate în jurnalele de blocare ale sistemului de operare, permițând utilizatorului final să examineze informațiile despre blocare pentru a căuta o posibilă cauză principală a conflictului.