Gestione delle eccezioni

Da Wikipedia, l'enciclopedia libera.

In informatica la gestione delle eccezioni è un costrutto dei linguaggi di programmazione o un meccanismo dell'hardware del computer progettato per gestire errori a runtime o altri problemi (eccezioni) che avvengono durante l'esecuzione di un programma su un computer.

In generale, lo stato attuale verrà salvato in una posizione predefinita e l'esecuzione passerà a un gestore predefinito handler. A seconda della situazione, il gestore può poi riprendere l'esecuzione alla posizione originale, usando l'informazione salvata per ripristinare lo stato originale. Un esempio di eccezione da cui solitamente si riprende l'esecuzione è il page fault, mentre una che solitamente non può essere risolta trasparentemente è la divisione per zero.

Dal punto di vista dell'elaborazione, gli interrupt hardware sono simili a eccezioni recuperabili, eccetto che solitamente non sono correlate con il flusso attuale del programma.

Descrizione[modifica | modifica wikitesto]

Scopi delle eccezioni[modifica | modifica wikitesto]

La gestione delle eccezioni è rivolta a facilitare l'uso di meccanismi ragionevoli per gestire situazioni erronee o eccezionali che sorgono nei programmi. La gestione delle eccezioni può essere usata per passare informazioni sulle situazioni d'errore che avvengono all'interno di codice di libreria ai suoi utenti, e rispondere selettivamente a quegli errori.

Un possibile ruolo della gestione delle eccezioni è di permettere al programma di continuare la sua normale operatività e prevenire errori interni (crash), che comportano la visualizzazione di messaggi d'errore di difficile comprensione per l'utente. In molti casi, è sufficiente arrestare il programma e produrre un resoconto dell'errore; la differenza rispetto a sistemi che non fanno uso di eccezioni per segnalare esecuzioni anomale del programma sta nel fatto che con un'appropriata gestione delle eccezioni la condizione erronea può essere localizzata con precisione, semplificando il debugging.

La gestione delle eccezioni rende obsoleta la tecnica di gestione dei segnali presente in alcuni linguaggi.

Strutture di controllo apposite[modifica | modifica wikitesto]

Exquisite-kfind.png Per approfondire, vedi Struttura_di_controllo#Le_eccezioni_in_C.2B.2B_e_linguaggi_derivati.

Le eccezioni sono definite da linguaggi come C++, D, Java, C#. La struttura di controllo utilizzata è il try-catch.

Bibliografia[modifica | modifica wikitesto]

  • G.C. Macchi, Le condizioni eccezionali e la loro gestione, Newsletter AICA "Affidabilità nei Sistemi di Elaborazione", n. 2, Scuola Superiore Reiss Romoli - STET, maggio 1987.

Voci correlate[modifica | modifica wikitesto]