Che cos'è un fine anormale?
Una fine anomala è una chiusura improvvisa e inaspettata di un programma o un'applicazione per computer funzionante. Il suo nome originariamente deriva dal vecchio sistema operativo IBM 360, che notava terminazioni come errori ABEND. Una fine anomala di un programma può verificarsi per molte ragioni diverse, ma le ragioni più comuni riguardano problemi con la memoria di sistema o problemi all'interno del codice del software. Quando si verifica questo tipo di terminazione, il programma si chiude da solo e il sistema operativo interviene per mitigare il danno svuotando la memoria del programma e agendo come se il programma si fosse chiuso correttamente in situazioni tipiche.
Problemi all'interno della memoria di sistema su un computer possono innescare una fine anomala a uno o più programmi sul sistema. Quando il computer consente il verificarsi di una perdita di memoria, quando consente a un programma di scrivere su una memoria che non è stata assegnata dal sistema operativo, può sovrascrivere inavvertitamente parti di memoria appartenenti a un altro programma. Una volta che il programma "invaso" tenta di recuperare le informazioni memorizzate nelle sezioni invase della memoria, non troverà più i dati corretti e previsti. Questa discrepanza comporta spesso un arresto anomalo completo dell'applicazione, poiché non può essere eseguita utilizzando le informazioni sovrascritte salvate dal programma invasore.
I problemi con il codice software a volte possono innescare una fine anomala di un programma. Se il software presenta bug o non contiene un codice di gestione degli errori sufficiente, input errati da parte dell'utente finale possono comportare una chiusura anomala del software. Ad esempio, un programma che chiede all'utente finale di inserire il proprio numero di telefono verrà solitamente codificato in modo tale che qualsiasi risposta non numerica che non contenga 10 cifre venga immediatamente "catturata" come potenziale errore e restituita all'utente finale come un brutto risultato. Il software immaturo o incompleto che non include questo codice di gestione degli errori potrebbe bloccarsi in caso di input errato; il programma non sarà in grado di far fronte se l'utente finale decide di inserire "abcdefg" come il suo presunto numero di telefono.
Quando si verifica una fine anomala, il sistema operativo di solito avvisa l'utente del computer che si è verificata una chiusura del programma. Dopo aver fatto ciò, il lavoro del sistema operativo è quello di recuperare dall'incidente senza influenzare negativamente nessuno degli altri programmi sul sistema. Per fare ciò, in genere libera la memoria assegnata al programma, esattamente come farebbe se il programma fosse terminato correttamente. Le informazioni sulla chiusura anomala del programma vengono spesso salvate nei registri degli arresti anomali del sistema operativo, consentendo a un utente finale di rivedere le informazioni sull'arresto anomalo per cercare una potenziale causa principale del conflitto.