Ett onormalt slut är en abrupt och oväntad avslutning av ett fungerande datorprogram eller program. Dess namn kommer ursprungligen från det äldre operativsystemet IBM 360, som noterade sådana uppsägningar som ABEND-fel. Ett onormalt slut på ett program kan uppstå av många olika anledningar, men de vanligaste orsakerna är problem med systemminnet eller problem i programvarans kod. När denna typ av avslutning sker stängs programmet av sig självt och operativsystemet går in för att mildra skadorna genom att spola programmets minne och agera som om programmet hade stängts framgångsrikt under typiska situationer.
Problem i systemminnet på en dator kan utlösa ett onormalt slut på ett eller flera program på systemet. När datorn tillåter en minnesläcka att inträffa – när den tillåter ett program att skriva till ett minne som inte har tilldelats den av operativsystemet – kan den oavsiktligt skriva över delar av minnet som tillhörde ett annat program. När väl det ”invaderade” programmet försöker återta informationen som finns lagrad i de invaderade minnesdelarna, kommer det inte längre att hitta den korrekta, förväntade informationen. Denna avvikelse resulterar ofta i en fullständig krasch av programmet, eftersom det inte kan köras genom att använda den överskrivna informationen som sparats av det invaderande programmet.
Problem med programvarukod kan ibland utlösa ett onormalt slut på ett program. Om programvaran har buggar eller inte innehåller tillräcklig felhanteringskod, kan felaktiga inmatningar från slutanvändaren resultera i en onormal avslutning av programvaran. Till exempel kommer ett program som ber slutanvändaren att ange sitt telefonnummer vanligtvis att kodas så att alla icke-numeriska svar som inte innehåller 10 siffror omedelbart ”fångas” som ett potentiellt fel och returneras till slutanvändaren som ett dåligt resultat. Omogen eller ofullständig programvara som inte inkluderar denna felhanteringskod kan krascha vid mottagande av felaktig inmatning; programmet kommer inte att kunna hantera om slutanvändaren bestämmer sig för att ange ”abcdefg” som hans eller hennes förmodade telefonnummer.
När ett onormalt slut inträffar, varnar operativsystemet vanligtvis datoranvändaren om att ett program har avslutats. Efter att ha gjort detta är operativsystemets uppgift att återhämta sig från kraschen utan att negativt påverka något av de andra programmen på systemet. För att göra detta frigör det vanligtvis minnet som det tilldelat programmet, precis som det skulle göra om programmet hade avslutats framgångsrikt. Information om den onormala programavslutningen sparas ofta i operativsystemets kraschloggar, vilket gör att en slutanvändare kan granska kraschinformationen för att leta efter en potentiell grundorsak till konflikten.