Wat is een abnormaal einde?
Een abnormaal einde is een abrupte en onverwachte beëindiging van een functionerend computerprogramma of -applicatie. De naam is oorspronkelijk afgeleid van het oudere IBM 360-besturingssysteem, dat beëindigingen als ABEND-fouten heeft opgemerkt. Een abnormaal einde van een programma kan om veel verschillende redenen voorkomen, maar de meest voorkomende redenen betreffen problemen met het systeemgeheugen of problemen met de code van de software. Wanneer dit type beëindiging plaatsvindt, sluit het programma vanzelf en komt het besturingssysteem in actie om de schade te beperken door het geheugen van het programma te wissen en te doen alsof het programma in typische situaties succesvol is afgesloten.
Problemen in het systeemgeheugen op een computer kunnen een abnormaal einde van een of meer programma's op het systeem veroorzaken. Wanneer de computer een geheugenlek toestaat - wanneer het een programma toestaat om naar geheugen te schrijven dat niet door het besturingssysteem is toegewezen - kan het onbedoeld delen van het geheugen overschrijven die tot een ander programma behoorden. Zodra het "binnengevallen" programma probeert de informatie terug te winnen die is opgeslagen in de binnengevallen delen van het geheugen, zal het niet langer de juiste, verwachte gegevens vinden. Deze discrepantie leidt vaak tot een volledige crash van de applicatie, omdat deze niet kan worden uitgevoerd met de overschreven informatie die is opgeslagen door het binnenvallende programma.
Problemen met softwarecode kunnen soms een abnormaal einde van een programma veroorzaken. Als de software fouten bevat of niet voldoende foutafhandelingscode bevat, kunnen onjuiste invoer door de eindgebruiker resulteren in een abnormale beëindiging van de software. Een programma dat de eindgebruiker vraagt om zijn of haar telefoonnummer in te voeren, wordt bijvoorbeeld meestal gecodeerd zodat elk niet-numeriek antwoord dat geen 10 cijfers bevat, onmiddellijk wordt "opgevangen" als een potentiële fout en wordt teruggestuurd naar de eindgebruiker als een slecht resultaat. Onvolwassen of onvolledige software die deze foutafhandelingscode niet bevat, kan crashen bij ontvangst van onjuiste invoer; het programma kan het niet aan als de eindgebruiker besluit "abcdefg" in te voeren als zijn of haar vermeende telefoonnummer.
Zodra een abnormaal einde optreedt, waarschuwt het besturingssysteem de computergebruiker meestal dat een programma is beëindigd. Nadat dit is gedaan, is het de taak van het besturingssysteem om te herstellen van de crash zonder nadelige gevolgen voor de andere programma's op het systeem. Om dit te doen, maakt het meestal het geheugen vrij dat het aan het programma heeft toegewezen, precies zoals het zou zijn als het programma met succes was beëindigd. Informatie over het beëindigen van het abnormale programma wordt vaak opgeslagen in de crashlogs van het besturingssysteem, zodat een eindgebruiker de crashinformatie kan bekijken om een mogelijke oorzaak van het conflict te zoeken.