Eccezioni
Le eccezioni sono eventi che si presentano in fase di run-time di un programma in seguito al verificarsi di situazioni anomale. Nel linguaggio Java, le eccezioni sono oggetti istanza delle classi contenuti nel package predefinito “java.lang”. Al verificarsi di un’eccezione è possibile intercettarla e gestirla mediante un codice specifico che possiamo scrivere all’interno di una classe per poi richiamarla tramite la parola chiave “extends” oppure far eseguire il programma in maniera anomala e con conseguenze imprevedibili. Le motivazioni che possono portare alla generazione di un’eccezione possono essere:
- Errori software.
- Immissione di un dato in input errato da parte dell’utente.
- Violazione della sicurezza (modifica di un file di cui non si hanno i privilegi di accesso).
- Mancanza di risorse hardware (connessione di rete) o software (file).
Le eccezioni predefinite più comuni sono:
- ArithmeticException: errori di tipo aritmetico.
- NullPointerException: uso di riferimenti nulli non inizializzati.
- ArrayIndexOutOfBoundsException: inserimento di un elemento fuori dal limite dell’array.
- IOException: errori di Input/Output.
Per definire un eccezione, utilizziamo i comandi “try”, “catch” e “finally”. I comandi try e catch non possono essere utilizzati singolarmente; se è presente il try, è strettamente necessario che sia presente anche il catch.
- try: Permette di definire un blocco di istruzioni di cui controllare l’esecuzione per intercettare eventuali eccezioni che possono verificarsi.
- catch: Restituisce un blocco di istruzioni che definiscono l’anomalia connessa alla specifica eccezione.
- finally: Restituisce un blocco di istruzioni che viene eseguito a prescindere dalla presenza o meno del blocco “catch”.
Cliccando su questi collegamenti è possibile trovare un esempio di programma Java in cui vengono utilizzate le eccezioni tramite i comandi “try” e catch” e la classe richiamata nel programma “Eccezione”:
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/Eccezione.java
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/OrarioNonValido.java
Lista
La lista in Java rappresenta un insieme di elementi collegati sequenzialmente tra loro tramite riferimenti. Gli elementi sono denominati “nodi” mentre i riferimenti “link”. Nella programmazione orientata agli oggetti, essa si definisce come una struttura dati dinamica perché è possibile aggiungere, spostare ed eliminare singoli elementi a seconda delle necessità. Il riferimento iniziale (head) serve ad accedere al primo nodo della lista; l’ultimo invece ha riferimento nullo. La lista non ha un numero di caselle finite e non ha un’organizzazione contigua. Le organizzazioni a lista prevedono una frammentazione degli elementi continui mentre i vettori (strutture statiche) non lo prevedono.
Il nodo può essere suddiviso in 2 componenti: la componente informatica e la componente che permette il collegamento al nodo successivo (link). Per l’inserimento o l’eliminazione dei singoli nodi, basta solamente cambiare la componente che collega al nodo successivo.
Cliccando su questi collegamenti è possibile trovare delle classi Java che compongono un programma dove è presente la struttura dati dinamica LISTA:
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/Festa.java
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/FestaException.java
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/Invitato.java
https://dl.dropboxusercontent.com/u/108776401/Esempi%20DeRosalia/Nodo.java