Middle
Quali sono i metodi per gestire le eccezioni verificate?
sobes.tech AI
Risposta dell'AI
- Utilizzare il blocco
try-catch: consente di intercettare un'eccezione e gestirla, evitando che il programma termini in modo imprevisto. - Dichiarare che un metodo può lanciare un'eccezione, usando la parola chiave
throwsnella firma del metodo: ciò trasferisce la responsabilità della gestione al codice chiamante. - Avvolgere un'eccezione verificabile in una non verificabile: permette di propagare l'eccezione senza gestione esplicita, ma può mascherare un problema reale.
Esempio di utilizzo di try-catch:
// Esempio di utilizzo di try-catch per gestire un'eccezione verificabile
try {
// Codice che può lanciare un'eccezione verificabile (ad esempio, IOException)
FileReader file = new FileReader("my_file.txt");
// Lavoro con il file...
} catch (IOException e) {
// Gestione dell'eccezione IOException
e.printStackTrace(); // Visualizza lo stack di chiamate per il debug
System.err.println("Errore durante il lavoro con il file: " + e.getMessage());
}
Esempio di utilizzo di throws:
// Esempio di utilizzo di throws nella firma del metodo
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Lavoro con il file...
}
// Il codice chiamante deve gestire IOException o dichiararla nella propria firma
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Errore durante la lettura del file: " + e.getMessage());
}
}
Esempio di avvolgimento in un'eccezione non verificabile:
// Esempio di avvolgimento di un'eccezione verificabile in una non verificabile
public void unsafeOperation() {
try {
// Codice che può lanciare un'eccezione verificabile
throw new IOException("Esempio di IOException");
} catch (IOException e) {
// Trasformare l'eccezione verificabile in una non verificabile
throw new RuntimeException("Errore rilevato nell'operazione", e);
}
}