Esercizi sulle eccezioni in Java
Questa sezione contiene i principali esercizi svolti a lezione, o assegnati per lo svolgimento a
casa, o in laboratorio.
L'elenco sarà aggiornato sulla base delle esigenze didattiche e/o delle
osservazioni/considerazioni che emergeranno durante l'interazione con gli allievi.
Nota:
Attenzione, la
numerazione degli esercizi non è definitiva e può cambiare nel tempo, man mano che vengono
inseriti nuovi esercizi, o riorganizzati quelli esistenti.
Fare riferimento al titolo per
individuare, nel tempo, esercizi specifici.
1) Quoziente della divisione tra interi
Realizzare una applicazione Java che chieda all'utente di inserire due numeri interi, calcoli e
stampi
il quoziente intero della divisione tra i due numeri, qualora possibile.
Nel caso in cui il divisore sia nullo, l'applicazione deve intercettare l'eccezione e
visualizzare un messaggio di errore del tipo "Impossibile calcolare il quoziente della divisione
tra <dividendo> e <divisore>, il divisore è nullo!".
Esempio 1
Inserire il dividendo: 10
Inserire il divisore: 4
Output:
Il quoziente della divisione tra 10 e 4 è 2.
Esempio 2
Inserire il dividendo: 10
Inserire il divisore: 0
Output:
Impossibile calcolare il quoziente della divisione tra 10 e 0, il divisore è nullo!
2) Resto della divisione tra interi
Realizzare una applicazione Java che chieda all'utente di inserire due numeri interi, calcoli e
stampi
il resto intero della divisione tra i due numeri, qualora possibile.
Nel caso in cui il divisore sia nullo, l'applicazione deve intercettare l'eccezione e
visualizzare un messaggio di errore del tipo "Impossibile calcolare il resto della divisione
tra <dividendo> e <divisore>, il divisore è nullo!".
Esempio 1
Inserire il dividendo: 10
Inserire il divisore: 3
Output:
Il resto della divisione tra 10 e 3 è 1.
Esempio 2
Inserire il dividendo: 10
Inserire il divisore: 0
Output:
Impossibile calcolare il resto della divisione tra 10 e 0, il divisore è nullo!
3) Reciproco di un numero intero
Realizzare una applicazione Java che chieda all'utente di inserire un numero intero, calcoli e
stampi
il reciproco del valore inserito, qualora possibile.
Nel caso in cui il numero inserito sia nullo, l'applicazione deve intercettare l'eccezione e
visualizzare un messaggio di errore del tipo "Impossibile calcolare il reciproco di 0!".
Esempio 1
Inserire un numero intero: 10
Output:
Il reciproco di 10 è 0.1.
Esempio 2
Inserire un numero intero: 0
Output:
Impossibile calcolare il reciproco di 0!
4) Quoziente della divisione tra interi con nuova
eccezione
Realizzare una applicazione Java che chieda all'utente di inserire due numeri interi, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, il
quoziente intero della divisione tra i due numeri, qualora possibile.
Nel caso in cui il divisore sia nullo, tale funzione deve sollevare una eccezione
QuozienteInteroException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare il quoziente della divisione
tra <dividendo> e 0, il divisore è nullo!"
Esempio 1
Inserire il dividendo: 10
Inserire il divisore: 3
Output:
Il quoziente della divisione tra 10 e 3 è 3.
Esempio 2
Inserire il dividendo: 10
Inserire il divisore: 0
Output:
Impossibile calcolare il quoziente della divisione tra 10 e 0, il divisore è nullo!
5) Resto della divisione tra interi con nuova
eccezione
Realizzare una applicazione Java che chieda all'utente di inserire due numeri interi, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, il
resto intero della divisione tra i due numeri, qualora possibile.
Nel caso in cui il divisore sia nullo, tale funzione deve sollevare una eccezione
RestoInteroException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare il resto della divisione
tra <dividendo> e 0, il divisore è nullo!"
Esempio 1
Inserire il dividendo: 10
Inserire il divisore: 3
Output:
Il quoziente della divisione tra 10 e 3 è 3.
Esempio 2
Inserire il dividendo: 10
Inserire il divisore: 0
Output:
Impossibile calcolare il quoziente della divisione tra 10 e 0, il divisore è nullo!
6) Reciproco di un numero intero con nuova eccezione
Realizzare una applicazione Java che chieda all'utente di inserire un numero intero, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, il
reciproco del numero inserito, qualora possibile.
Nel caso in cui il valore inserito sia nullo, tale funzione deve sollevare una eccezione
ReciprocoException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare il reciproco di 0!"
Esempio 1
Inserire un numero intero: 10
Output:
Il reciproco di 10 è 0.1.
Esempio 2
Inserire un numero intero: 0
Output:
Impossibile calcolare il reciproco di 0!
7) Radice quadrata di un numero con nuova
eccezione
Realizzare una applicazione Java che chieda all'utente di inserire un numero, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, la radice
quadrata del numero inserito, qualora possibile.
Nel caso in cui il valore inserito sia negativo, tale funzione deve sollevare una eccezione
RadicandoNegativoException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare la radice quadrata di <radicando>,
radicando negativo!"
Esempio 1
Inserire un numero intero: 16
Output:
La radice quadrata di 16 è 4.
Esempio 2
Inserire un numero intero: -25
Output:
Impossibile calcolare la radice quadrata di -25, radicando negativo!
8) Fattoriale di un numero con nuova
eccezione
Realizzare una applicazione Java che chieda all'utente di inserire un numero, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, il
fattoriale
del numero inserito, qualora possibile.
Nel caso in cui il valore inserito sia negativo, tale funzione deve sollevare una eccezione
ArgomentoNegativoException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare il fattoriale di <numero>, perché
negativo!"
Esempio 1
Inserire un numero intero: 5
Output:
Il fattoriale di 5 è 120.
Esempio 2
Inserire un numero intero: -3
Output:
Impossibile calcolare il fattoriale -3, perché negativo!
Soluzione
9) Logaritmo naturale di un numero con nuova
eccezione
Realizzare una applicazione Java che chieda all'utente di inserire un numero, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, il
logaritmo naturale
del numero inserito, qualora possibile.
Nel caso in cui il valore inserito sia negativo o nullo, tale funzione deve sollevare una
eccezione
ArgomentoNonValidoException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "Impossibile calcolare il logaritmo naturale di <numero>, perché
negativo!" o "Impossibile calcolare il logaritmo naturale di <numero>, perché
nullo!", a seconda del valore numerico inserito dall'utente.
Esempio 1
Inserire un numero intero: 1
Output:
Il logaritmo naturale di 1 è 0.
Esempio 2
Inserire un numero intero: -3
Output:
Impossibile calcolare il logaritmo naturale di -3, perché negativo!
Esempio 3
Inserire un numero intero: 0
Output:
Impossibile calcolare il logaritmo naturale di 0, perché nullo!
10) Giorno della settimana di una data in input
Realizzare una applicazione Java che chieda all'utente di inserire tre numeri interi
rappresentanti il giorno, il mese e l'anno di una data, calcoli e
stampi,
utilizzando una funzione statica appositamente definita in una classe DateFunctions, il
giorno della settimana della data inserita, qualora possibile.
Nel caso in cui i valori inseriti non corrispondano ad una data valida, tale funzione deve
sollevare una
eccezione
DataNonValidaException, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "La data giorno/mese/anno non corrisponde ad una data valida!
N.b.: il giorno risultante può essere anche in inglese.
Esempio 1
Inserire il giorno: 1
Inserire il mese: 1
Inserire l'anno: 2024
Output:
Il giorno del 01/01/2024 è lunedì.
Esempio 2
Inserire il giorno: 35
Inserire il mese: 15
Inserire l'anno: 2024
Output:
La data 35/15/2024 non corrisponde ad una data valida!
Soluzione
11) Soluzioni equazione di secondo grado
Realizzare una applicazione Java che chieda all'utente di inserire tre numeri
rappresentanti i coefficienti a, b, c di una equazione di secondo grado ax^2 + bx + c = 0,
calcoli e stampi,
utilizzando una funzione statica appositamente definita in una classe MathFunctions, le
soluzioni
reali dell'equazione, qualora possibile.
Nel caso l'equazione sia impossibile, tale funzione deve sollevare una
eccezione, che deve permettere di ottenere, attraverso il metodo
getMessage, il messaggio "L'equazione ax^2 + bx + c = 0 non ammette soluzioni reali!", dove al
posto di a, b, c ci siano i valori inseriti dall'utente.
Esempio 1
Inserire il coefficiente a: 1
Inserire il coefficiente b: -5
Inserire il coefficiente c: 6
Output:
Le soluzioni dell'equazione x^2 - 5x + 6 = 0 sono x1 = 3 e x2 = 1.
Esempio 2
Inserire il coefficiente a: 1
Inserire il coefficiente b: -4
Inserire il coefficiente c: 4
Output:
Le soluzioni dell'equazione x^2 - 4x + 4 = 0 sono coincidenti e sono x1 = x2 = 2.
Esempio 3
Inserire il coefficiente a: 1
Inserire il coefficiente b: 4
Inserire il coefficiente c: 5
Output:
L'equazione x^2 + 4x + 5 = 0 non ammette soluzioni reali!.