Differenza tra eccezione e errore in informatica

Differenza tra eccezione e errore in informatica

In informatica e maggiormente nello sviluppo software, un comportamento imprevisto è destinato a verificarsi quando un programma è in esecuzione. Ciò potrebbe essere dovuto a eccezioni o errori. Le eccezioni sono gli eventi che possono disturbare il normale flusso del programma, mentre gli errori sono condizioni che possono essere considerate irrecuperabili. Infine, Le eccezioni sono per lo più legate all’applicazione stessa, mentre gli errori sono legati al sistema su cui è in esecuzione il programma.

Eccezione

L’eccezione (in inglese Exception) è un evento che può disturbare il normale flusso del programma. Il nome eccezione deriva da “evento eccezionale”. Lanciare un’eccezione è il processo di creazione di un oggetto eccezione e di consegna al sistema runtime. L’oggetto eccezione viene creato dal metodo in cui si è verificata l’eccezione. L’oggetto eccezione contiene informazioni utili come il tipo e la descrizione dell’eccezione. Quando il sistema runtime riceve l’oggetto eccezione, proverà a trovare qualcuno che lo gestisca all’interno dello stack di chiamate attraversandolo nell’ordine inverso (in cui sono stati chiamati i metodi). Lo stack di chiamate è l’elenco ordinato di metodi, che sono stati chiamati prima del metodo in cui si è verificata l’eccezione. Il sistema runtime ha esito positivo se trova un metodo con un gestore di eccezioni. Il gestore delle eccezioni è un blocco di codice che può ufficialmente gestire la suddetta eccezione. Se il sistema runtime trova un gestore appropriato (cioè il tipo di eccezione corrisponde al tipo che può essere gestito), passerà l’oggetto eccezione al gestore. Questo si chiama cattura dell’eccezione. Tuttavia, se l’eccezione non può essere gestita, il programma verrà terminato. In Java, le eccezioni ereditano dalla “classe Throwable” NullPointerException e ad esempio, ArrayIndexOutOfBoundsException sono due eccezioni comuni in Java.

Errore

Un errore (in inglese Error) è una condizione che può essere considerata irrecuperabile come il programma che richiede una quantità di memoria maggiore di quella disponibile. Questi errori non possono essere gestiti in fase di esecuzione. Se si verifica un errore, il programma verrà chiuso. In Java, gli errori ereditano dalla classe Throwable. Gli errori di solito rappresentano problemi seri che il programmatore (o l’applicazione) non dovrebbe cercare di individuare. Gli errori sono semplicemente condizioni anormali, che non dovrebbero mai verificarsi in circostanze normali, e quindi mai previste. Ad esempio, OutOfMemoryError, StackOverflowError e ThreadDead sono tali errori. Infine, i metodi non dovrebbero mai avere gestori di errori.

Differenza tra eccezione e errore in informatica

Differenza tra eccezione e errore

Sia gli errori che le eccezioni sono eventi indesiderati durante l’esecuzione di un programma. Tuttavia, hanno differenze fondamentali. Eccezioni possono essere previste dal programmatore, mentre un errore è difficile da prevedere. Le eccezioni possono essere selezionate o deselezionate. Ma gli errori sono sempre deselezionati. Le eccezioni indicano in genere un errore causato dal programmatore. Tuttavia, si verificano errori a causa di un errore di sistema o di un utilizzo inappropriato di una risorsa. Pertanto, le eccezioni dovrebbero essere gestite a livello di applicazione, mentre gli errori dovrebbero essere gestiti a livello di sistema (solo se possibile). Dopo aver gestito un’eccezione, si è sicuri di tornare al normale flusso del programma. Ma anche se viene rilevato un errore, il programmatore potrebbe non sapere come gestirlo in primo luogo. A differenza della tradizionale gestione degli errori, le eccezioni consentono di separare il codice di gestione degli errori dal codice normale.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *