Differenza tra eccezione ed errore

Differenza tra eccezione ed errore
Differenza tra eccezione ed errore

Video: Differenza tra eccezione ed errore

Video: Differenza tra eccezione ed errore
Video: Symbian - ЖИВА В 2020?! 2024, Luglio
Anonim

Eccezione vs errore

È inevitabile che si verifichi un comportamento imprevisto durante l'esecuzione di un programma. Ciò potrebbe essere dovuto a eccezioni o errori. Fanno eccezione gli eventi che possono disturbare il normale flusso del programma. Gli errori sono condizioni che possono essere considerate irrecuperabili. Le eccezioni sono per lo più legate all'applicazione stessa, mentre gli errori sono legati al sistema su cui è in esecuzione il programma.

Cos'è un'eccezione?

L'eccezione è un evento che può disturbare il normale flusso del programma. L'eccezione del nome deriva da "evento eccezionale". La generazione di un'eccezione è il processo di creazione di un oggetto eccezione e di consegna al sistema di 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 di runtime riceve l'oggetto eccezione, cercherà di 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 dei metodi, che sono stati chiamati prima del metodo in cui si è verificata l'eccezione. Il sistema di runtime ha esito positivo se trova un metodo con un gestore di eccezioni. Il gestore di eccezioni è un blocco di codice che può gestire ufficialmente la suddetta eccezione. Se il sistema di runtime trova un gestore appropriato (ovvero il tipo di eccezione corrisponde al tipo che può essere gestito), passerà l'oggetto eccezione al gestore. Questo è chiamato catturare l'eccezione. Tuttavia, se l'eccezione non può essere gestita, il programma verrà terminato. In Java, le eccezioni ereditano dalla "classe lanciabile". NullPointerException e ArrayIndexOutOfBoundsException sono due eccezioni comuni in Java.

Che cos'è un errore?

Un errore è 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à terminato. In Java, gli errori ereditano dalla classe Throwable. Gli errori di solito rappresentano problemi seri che il programmatore (o l'applicazione) non dovrebbe tentare di rilevare. 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. I metodi non dovrebbero mai avere gestori per gli errori.

Qual è la differenza tra Eccezione ed Errore?

Sia gli errori che le eccezioni si verificano 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 in genere indicano 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 presi in considerazione a livello di sistema (solo se possibile). Dopo aver gestito un'eccezione, è garantito il ritorno 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.

Consigliato: