LE ECCEZIONI IN JAVA

UTILIZZARE LA KEYWORD THROWS

java-logo

Se noi non gestiamo un determinato gruppo di eccezioni nel codice, può succedere che il programma termini con un messaggio di errore. Se un metodo può potenzialmente generare eccezioni, chi usa quel metodo deve saperlo in modo da prendere le proprie contromisure. Vediamo come si dichiara un metodo con la parola chiave throws.

Throws

exc-list sono le classi di eccezione che il metodo non è in grado o non vuole gestire. Le classi escluse da questo meccanismo sono quelle la cui superclasse è Error e RuntimeException.

Error and RuntimeException

Error sono eccezioni che non siamo in grado di gestire, ad esempio un errore di rete. In tutti gli altri casi dobbiamo per forza dichiarare che esiste la possibilità di generare eccezioni.

IOException

Ora chi invoca myMethod() può usare due strategie, la prima è quella di gestire l’eccezione. Vediamo la figura.

Eccezione gestita

Oppure può nuovamente sollevare l’eccezione, questa catena può arrivare fino al metodo main.

Sollevare nuovamente una eccezione

IL BLOCCO DI CODICE FINALLY

Torniamo a guardare l’esempio di codice dell’articolo precedente.

try catch

Possiamo introdurre nel blocco try/catch un ulteriore blocco di codice che viene sempre eseguito. Il blocco è finally.

Finally

L’utilizzo normalmente che ne viene fatto di finally è quello, ad esempio, di chiudere un file, una connessione ad un database etc.

SOLLEVARE UNA ECCEZIONE

Utilizzando il nostro solito esempio, vediamo come si solleva una eccezione.

throw

L’esecuzione del programma si interrompe esattamente dove viene creata l’istanza di AritmeticException() e si inizia a risalire lo stack di chiamate per trovare un gestore di errore per la divisione per zero se esiste, altrimenti il programma termina in modo anomalo. Volendo si può risollevare anche una eccezione, vediamo come si fa. Guarda la figura.

Risollevare una eccezione

Con l’istruzione throw e l’eccezione non viene più rimossa ma rilanciata. Il motivo per cui si fa questo è quello di cercare un metodo di livello superiore che gestisca ulteriormente l’eccezione propagata, oppure perché dopo aver gestito l’errore nel blocco catch vogliamo terminare in modo prematuro il programma.

CREARE UNA CLASSE DI ECCEZIONI

Impareremo a creare una nuovo classe che rappresenta la nostra eccezione. Vediamo un banale esempio. Il metodo println stamperà “Eccezione Personalizzata!”. Viene ridefinito anziché un metodo della classe throwable il metodo toString() della classe Object.

Eccezione personalizzata

LINK AI POST PRECEDENTI

IL LINGUAGGIO JAVA

LINK AL CODICE SU GITHUB

GITHUB

ESECUZIONE DEL CODICE DI ESEMPIO

  • Scaricare il codice da GITHUB, lanciare il file JAR con il seguente comando in Visual Studio Code, posizionandosi nella directory contenente il JAR.

        java -jar –enable-preview CorsoJava.jar

  • Oppure mettere in esecuzione il main che si trova nel file CorsoJava.java.