Qu'est-ce qu'une fin anormale?
Une fin anormale est une terminaison abrupte et inattendue d'un programme ou d'une application en fonctionnement. Son nom provient à l'origine de l'ancien système d'exploitation IBM 360, qui notait ces terminaisons comme des erreurs ABEND. Une fin anormale d'un programme peut survenir pour différentes raisons, mais les raisons les plus courantes sont des problèmes de mémoire système ou des problèmes liés au code du logiciel. Lorsque ce type de terminaison a lieu, le programme se ferme tout seul et le système d'exploitation intervient pour atténuer les dommages en vidant la mémoire du programme et en agissant comme si le programme s'était arrêté avec succès dans des situations typiques.
Des problèmes dans la mémoire système d'un ordinateur peuvent déclencher une fin anormale d'un ou plusieurs programmes du système. Lorsque l'ordinateur autorise une fuite de mémoire - lorsqu'il permet à un programme d'écrire dans une mémoire qui ne lui a pas été affectée par le système d'exploitation - il peut écraser par inadvertance des parties de la mémoire appartenant à un autre programme. Une fois que le programme "envahi" tente de récupérer les informations stockées dans les sections de mémoire envahies, il ne trouvera plus les données correctes attendues. Cette différence entraîne souvent un blocage complet de l'application, car elle ne peut pas être exécutée à l'aide des informations écrasées enregistrées par le programme d'invasion.
Des problèmes de code logiciel peuvent parfois déclencher une fin anormale d'un programme. Si le logiciel contient des bogues ou ne contient pas suffisamment de code de traitement des erreurs, des entrées incorrectes de l'utilisateur final peuvent entraîner une fermeture anormale du logiciel. Par exemple, un programme qui demande à l'utilisateur final de saisir son numéro de téléphone est généralement codé de manière à ce que toute réponse non numérique ne contenant pas 10 chiffres soit immédiatement "considérée" comme une erreur potentielle et renvoyée à l'utilisateur final en tant que un mauvais résultat. Un logiciel immature ou incomplet qui n'inclut pas ce code de traitement des erreurs peut se bloquer lors de la réception d'une entrée incorrecte; le programme ne pourra pas s'en sortir si l'utilisateur final décide d'entrer "abcdefg" comme numéro de téléphone supposé.
Lorsqu'une fin anormale se produit, le système d'exploitation avertit généralement l'utilisateur de l'ordinateur de la fin du programme. Cela fait, le système d’exploitation a pour tâche de remédier au crash sans nuire aux autres programmes du système. Pour ce faire, il libère généralement la mémoire qu'il a attribuée au programme, exactement comme si le programme s'était terminé avec succès. Les informations sur la fin anormale du programme sont souvent enregistrées dans les journaux des incidents du système d'exploitation, ce qui permet à l'utilisateur final de consulter les informations sur l'incident afin de rechercher une cause potentielle du conflit.