In Java, ci sono due tipi di eccezioni:
1) Checked: sono le eccezioni che vengono controllate in fase di compilazione. Se un codice all’interno di un metodo genera un’eccezione selezionata, il metodo deve gestire l’eccezione o specificare l’eccezione utilizzando la parola chiave throws.
Ad esempio, si consideri il seguente programma Java che apre il file in posizione “C:\test\a.txt” e ne stampa le prime tre righe., Il programma non viene compilato, perché la funzione main() utilizza FileReader() e FileReader() genera un’eccezione controllata FileNotFoundException. Esso utilizza anche la readLine() e close() metodi, e anche questi metodi buttare controllato eccezione IOException
Uscita:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown at Main.main(Main.java:5)
Per fissare il programma di cui sopra, ci sia bisogno di specificare l’elenco di eccezioni getta, o dobbiamo usare il blocco try-catch. Abbiamo usato getta nel programma qui sotto., Poiché FileNotFoundException è una sottoclasse di IOException, possiamo semplicemente specificare IOException nell’elenco dei lanci e rendere il programma sopra compilatore privo di errori.
Output: prime tre righe di file “C:\test\a.txt”
2) Deselezionate sono le eccezioni che non vengono controllate al momento della compilazione. In C++, tutte le eccezioni sono deselezionate, quindi non è costretto dal compilatore a gestire o specificare l’eccezione. Spetta ai programmatori essere civilizzati e specificare o catturare le eccezioni.,
Nelle eccezioni Java nelle classi Error e RuntimeException sono eccezioni deselezionate, tutto il resto sotto throwable è controllato.
+-----------+ | Throwable | +-----------+ / \ / \ +-------+ +-----------+ | Error | | Exception | +-------+ +-----------+ / | \ / | \ \________/ \______/ \ +------------------+ unchecked checked | RuntimeException | +------------------+ / | | \ \_________________/ unchecked
Considera il seguente programma Java. Compila bene, ma lancia ArithmeticException quando viene eseguito. Il compilatore consente di compilare, perché ArithmeticException è un’eccezione non selezionata.,2b7cfd03″>
;
int
y =
10
;
int
z = y/x;
}
}
Output:
Exception in thread "main" java.lang.ArithmeticException: / by zero at Main.main(Main.java:5)Java Result: 1
Why two types?,
Vedi Eccezioni non controllate — La controversia per i dettagli.
Dovremmo fare le nostre eccezioni controllate o deselezionate?
Di seguito è riportata la linea di fondo dei documenti Java
Se ci si può ragionevolmente aspettare che un client recuperi da un’eccezione, rendilo un’eccezione controllata. Se un client non può fare nulla per recuperare dall’eccezione, rendilo un’eccezione non selezionata
Java Corner su GeeksforGeeks
Si prega di scrivere commenti se si trova qualcosa di errato o se si desidera condividere ulteriori informazioni sull’argomento discusso sopra.
Lettore di attenzione! Non smettere di imparare ora., Entra in possesso di tutti gli importanti concetti di Java Foundation e Collections con i fondamenti del corso Java e Java Collections ad un prezzo adatto agli studenti e diventa pronto per l’industria.