Dopo aver studiato la sintassi per derivare le classi, siamo ora in grado di spiegare come creare degli oggetti personalizzati per la gestione delle eccezioni che abbiamo spiegato in una lezione precedente. Parleremo anche dei thread, cosa sono è stato spiegato in questo articolo, qui vedremo come si programmano in Java.
Riprendiamo il discorso dell’eccezione lanciata dal sistema quando tentiamo di dividere un numero per zero, avevamo visto come intercettare l’errore e scrivere un nostro messaggio all’utente. In questa lezione ci preoccuperemo di creare una classe, derivata da Exception delle librerie Java, che venga lanciata non appena si presenti una divisione per zero.
// file Main.java package corso; class CDivisionePerZero extends Exception { void Informazioni() { System.out.println("Si è verificata un'eccezione dovuta ad una divisione per zero!"); } } public class Main { public static int Divisione(int iDividendo, int iDivisore) throws CDivisionePerZero { if (iDivisore == 0) throw new CDivisionePerZero(); else return iDividendo / iDivisore; } public static void main(String[] args) { int a = 18, b = 0; try { a = Divisione(a, b); } catch (CDivisionePerZero e) { e.Informazioni(); return; } System.out.println("Il risultato della divisione è " + a); } }
Abbiamo creato una classe da quella predefinita per la gestione delle eccezioni in Java, poi abbiamo avvertito la funzione Divisione della possibile eccezione CDivisionePerZero quindi abbiamo creato una nuova eccezione di questo tipo con new, lanciandola con la parola chiave throw.
Ognuno di noi ha spesso sentito parlare di processi e thread, che esistono sia in ambiente Windows che Linux. In questa lezione del corso impareremo a gestire i thread da codice, quindi avremo la possibilità di effettuare più elaborazioni contemporaneamente. La classe Java che permette di gestire i thread si chiama per l’appunto Thread ed è presente nel JDK ( Java Development Kit ), si deduce quindi che Java sia nativamente pensato per la gestione dei thread ed il programmatore non deve fare altro che servirsi delle classi preconfezionate che gli vengono offerte. Un programma che fa uso del multithreading avrà almeno una classe che rappresenta il thread; all’interno di essa è necessario definire un particolare metodo, denominato run(), che contiene le operazioni da effettuare. Vediamo di capire come funziona attraverso questo esempio:
// file Main.java package corso; class CEsempioThread extends Thread { private boolean m_bFirst; CEsempioThread(boolean bFirst) { m_bFirst = bFirst; } public void run() { for (int i = 1; i < 1000; i++) { if (m_bFirst) System.out.println("Il valore letto nel primo thread è " + i); else System.out.println("Il valore letto nel secondo thread è " + i); } } } public class Main { public static void main(String[] args) { CEsempioThread t1 = new CEsempioThread(true); CEsempioThread t2 = new CEsempioThread(false); System.out.println("Faccio partire il primo thread"); t1.start(); System.out.println("Faccio partire il secondo thread"); t2.start(); } }
Se notate l’output del programma noterete che l’elaborazione dei dati va da un thread all’altro.
<< Lezione Precedente – Inizio Corso – Lezione Successiva >>
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→