try/catch
try {
int value = Integer.parseInt("7");
} catch (NumberFormatException ex) {
System.out.println(ex.getMessage());
}
custom exception
class ValidationException extends RuntimeException {
ValidationException(String msg) { super(msg); }
}
finally
usa finally per cleanup di risorse sensibili.
panoramica
In questo capitolo su gestione eccezioni, try/catch, custom exception e cleanup sicuro. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: error handling
obiettivi
- capire e applicare try/catch in uno scenario reale
- capire e applicare custom exception in uno scenario reale
- capire e applicare finally in uno scenario reale
- riconoscere trade-off tra chiarezza e performance
scheda rapida
import java.util.List;
public class Main {
public static void main(String[] args) {
var dati = List.of(1, 2, 3);
var out = dati.stream().map(x -> x * 2).toList();
System.out.println(out);
}
}
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
tips
- organizza package per dominio
- preferisci immutabilità dove possibile
- documenta le API pubbliche
- separa eccezioni di dominio
- usa try-with-resources
- non catturare Exception generico
tip: Ogni eccezione dovrebbe dire cosa è successo e cosa fare.
mini progetto
Parser di file con gestione errori.
- leggi il file
- gestisci IOException
- lancia ParseException custom
- testa casi invalidi
output atteso: uno script o query ripetibile con risultati verificabili.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale