"Throwable" è la classe genitore delle classi Error ed Exception. La classe "RuntimeException" e le sue sottoclassi, la classe "Errore" e le sue classi figlie sono le "Eccezioni non controllate" mentre le restanti sottoclassi della classe "Eccezione" tranne "RuntimeException" sono le eccezioni controllate. La differenza fondamentale tra eccezione controllata e non controllata è che le eccezioni controllate sono controllate dal compilatore, mentre il compilatore non controlla le eccezioni non controllate.
Cerchiamo di discutere le altre differenze tra le eccezioni controllate e deselezionate con l'aiuto della tabella di confronto.
Grafico comparativo
Base per il confronto | Eccezione controllata | Eccezione non verificata |
---|---|---|
Di base | Il compilatore controlla l'eccezione verificata. | Il compilatore non controlla l'eccezione Unchecked. |
Classe di eccezione | Tranne la classe "RuntimeException" tutte le classi figlie della classe "Exception" e la classe "Error" e le sue classi figlie sono Eccezioni controllate. | La classe "RuntimeException" e le sue classi figlie, sono "Eccezioni non selezionate". |
maneggio | Se non gestiamo l'eccezione verificata, allora gli oggetti del compilatore. | Anche se non gestiamo l'eccezione non controllata, il compilatore non obietta. |
Compilazione | Il programma non si compila se c'è un'eccezione controllata non gestita nel codice del programma. | Il programma viene compilato correttamente anche se è presente un'eccezione non controllata non gestita nel codice del programma. |
Definizione di Eccezione controllata
Le eccezioni controllate sono quelle eccezioni che vengono controllate dal compilatore per l'esecuzione regolare del programma. Il compilatore controlla se il programma è in grado di gestire l'eccezione verificata o meno. Se il codice non è in grado di gestire l'eccezione, si verifica un errore di compilazione. Tutte le sottoclassi di classe "Exception" tranne la classe RuntimeException sono le eccezioni controllate.
Cerchiamo di studiare l'eccezione verificata con un esempio.
import java.io. *; class Esempio {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Questo costruttore FileInputStream (nome file file) genera FileNotFoundException che è un'eccezione controllata. int k; while ((k = fis.read ())! = -1) {// Il metodo read () della classe FileInputStream genera anche un'eccezione controllata: IOException. System.out.print ((char) k); } fis.close (); // Il metodo close () chiude il flusso di input del file che genera IOException. }}
Nel codice sopra, stiamo cercando di aprire, leggere e visualizzare i contenuti del file. Può accadere che il file non sia presente, quindi si verificherà FileNotFoundException che è un'eccezione controllata. Se l'eccezione selezionata non viene gestita, il compilatore non consentirà la compilazione del programma senza problemi. Mostrerà l'errore del tempo di compilazione. Quindi, per una compilazione semplice, l'eccezione verificata deve essere catturata o dichiarata per essere lanciata.
Definizione di Eccezione non verificata
Le eccezioni non selezionate sono quelle eccezioni che non sono controllate dal compilatore. Il compilatore compila il programma correttamente anche se le eccezioni non sono gestite dal codice. La classe "Errore" e le sue classi figlie, la classe "Runtime" e le sue sottoclassi sono le eccezioni non controllate.
Vediamo un esempio di un'eccezione non controllata.
Esempio di classe {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); //Indice della Matrice Fuori Dai Limiti d'Eccezione. }}
Nel codice sopra, puoi vedere che c'è una ArrayIndexOutOfBoundsException, mentre sto provando ad accedere all'elemento che non esiste. Poiché si tratta di un'eccezione non controllata, l'errore di compilazione non si verificherà e il file verrà compilato senza errori. Ma il programma non verrà eseguito finché non verrà gestita l'eccezione. Quindi, per un'esecuzione regolare, le eccezioni devono essere catturate o dichiarate per essere lanciate
Differenze chiave tra Eccezione controllata e Deselezionata
- Le eccezioni controllate sono a conoscenza del compilatore, mentre le eccezioni Unchecked non sono a conoscenza del compilatore.
- Tranne la classe RuntimeException e Error tutte le classi sono controllate eccezione. D'altra parte, le classi RuntimeException e Error sono eccezioni non controllate.
- Se le eccezioni controllate non sono gestite dal codice, allora gli oggetti del compilatore. D'altra parte, se non gestiamo eccezioni non controllate nel codice, il compilatore non obietta.
- Se le eccezioni controllate si verificano nel codice, il codice non verrà compilato mentre, anche se le eccezioni non controllate non sono gestite dal codice, il compilatore compila ancora il codice.
Nota :
L'eccezione selezionata o non controllata si verifica obbligatoriamente durante il runtime. Sono controllati o deselezionati solo dal compilatore durante la compilazione.
Conclusione:
Entrambe le eccezioni controllate e deselezionate devono essere gestite per eseguire il programma senza intoppi.