Creazione di Eccezioni Personalizzate
Scorri per mostrare il menu
Quando si sviluppano applicazioni Java più complesse, è possibile incontrare situazioni di errore uniche per la logica del proprio programma. Sebbene Java offra molte eccezioni predefinite, a volte nessuna di esse descrive chiaramente il problema specifico che si desidera segnalare. In questi casi, è possibile creare eccezioni personalizzate. Le eccezioni personalizzate consentono di assegnare nomi significativi alle condizioni di errore, rendendo il codice più comprensibile, manutenibile e semplice da eseguire il debug. Definendo eccezioni su misura per le esigenze dell'applicazione, si facilita l'identificazione e la gestione rapida di scenari di errore specifici da parte di altri sviluppatori (e di sé stessi in futuro).
Per creare un'eccezione personalizzata, si definisce una nuova classe che estende la classe Exception oppure la classe RuntimeException. Se l'eccezione deve essere controllata (ovvero il compilatore obbliga a gestirla tramite un blocco try-catch o a dichiararla con throws), si estende Exception. Se invece deve essere non controllata (non imposta dal compilatore), si estende RuntimeException. L'eccezione personalizzata può includere costruttori, campi e metodi come qualsiasi altra classe, ma è prassi comune fornire almeno un costruttore che accetti un messaggio descrittivo dell'errore.
Main.java
123456789101112131415161718192021222324package com.example; class InvalidAgeException extends Exception { public InvalidAgeException(String message) { super(message); } } public class Main { public static void checkAge(int age) throws InvalidAgeException { if (age < 18) { throw new InvalidAgeException("Age must be at least 18."); } System.out.println("Access granted. Age is valid."); } public static void main(String[] args) { try { checkAge(15); } catch (InvalidAgeException e) { System.out.println("Caught exception: " + e.getMessage()); } } }
Nel codice sopra, viene definita un'eccezione controllata personalizzata creando la classe InvalidAgeException, che estende Exception. Questa classe dispone di un costruttore che accetta un messaggio di errore. Il metodo checkAge lancia un'eccezione InvalidAgeException se l'età fornita è inferiore a 18.
Nel metodo main, viene chiamato checkAge(15), che genera l'eccezione. Il blocco try-catch intercetta l'eccezione e stampa il relativo messaggio. Questo schema mostra come sia possibile utilizzare eccezioni personalizzate per gestire condizioni di errore specifiche in modo chiaro e organizzato.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione